- 78
- 0
在angular 1.x版本中使用directive,代码如下
// directive
module.directive('rankChart', function() {
return {
scope: {
id: "@",
rankItem: "=",
rankData: "=",
reloadChartData: "=rankreload"
},
restrict: 'E',
template: '<div>{{rankData[0].showHand}}</div>',
replace: true,
controller: function($scope) {
var loadRankChartData = function() {
var option = {
grid: {
x: 50,
x2: 50,
y: 0,
y2: 0,
height: $scope.rankItem.length * 40
},
xAxis: {
type : 'value',
axisLine: {show: false},
axisLabel: {show: false},
axisTick: {show: false},
splitLine: {show: false}
},
yAxis: {
type : 'category',
axisTick: {show: false},
data : $scope.rankItem
},
series : [
{
name:'贡献值',
type:'bar',
stack: '排名',
barWidth: 16,
itemStyle: {
normal: {
color: '#3F9AE9'
}
},
label: {
normal: {
color:'#333333',
show: true,
position: 'right'
}
},
data:$scope.rankData
}
]
};
var myChart = echarts.init(document.getElementById($scope.id));
myChart.clear();
myChart.setOption(option);
myChart.on('click',function (param) {
console.log(param)
dataIndex = param.dataIndex
angular.forEach($scope.rankData,function (item) {
item.showHand = false
});
$scope.rankData[dataIndex].showHand = true
console.log($scope.rankData)
})
}
// 对外接口
$scope.reloadChartData = function() {
loadRankChartData();
}
}
};
});
html
<rank-chart id="rankChart" rank-data="rankData" rank-item="rankItem"
style="width:400px;" ng-style="{'height': !rankData.length?'80px' : rankData.length * 40 + 'px'}" rankreload="rankreload"></rank-chart>
controller
$scope.rankData = []
$scope.rankItem = []
请求后--
$scope.rankData = [{value: 22,sid:22, rank: 1,showHand:false}]
$scope.rankItem = ['name']
$scope.rankreload($scope.rankItem, $scope.rankdata);
这里使用的echart,想在点击之后改变它的属性,改了之后在directive里能打印出来,showHand为ture,但是controller里或者说页面的值并没有发生变化,看过文档 说 '=' 是双向绑定,不知道为什么controller的值没有改变呢?
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
遗失的美好 普通会员 1楼
在Angular1.x中,实现双向通信(双向数据绑定)可以通过在组件中使用
ngModel和ngModelController两个属性。ngModel:这是Angular1.x中用于双向数据绑定的核心属性。它用于将数据绑定到视图中的文本框或输入框。当双向数据绑定触发时,ngModel将自动更新视图中的数据。
```html
```
ngModelController:这是Angular1.x中用于处理双向数据绑定的控制器。当双向数据绑定触发时,ngModelController将监听ngModel的变化,并相应地更新视图中的数据。
typescript angular.module('app').controller('AppController', ['$scope', '$http', '$filter', '$parse', function ($scope, $http, $filter, $parse) { $scope.inputValue = $parse($scope.inputValue); $scope.search = $filter('search', $scope.inputValue); }]);在实际开发中,你可能需要处理一些额外的问题,比如数据类型转换、异步操作等。你可以参考Angular的官方文档来获取更多关于双向数据绑定的信息。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
