我的指令如下
<div ng-controller=prdController as prd>
<my-dir data=prd.data ng-click=stateChanged()></my-dir>
</div>
其中prd.data是一个对象。在我的指令中,我做了以下
app.directive('myDir',function(){
return {
scope:{
data:'=data'
},
templateUrl: './templates/testtemplate.html',
controllerAs:'bd',
controller:function($scope,$attrs){
this.stateChanged = function (value) {
$attrs.data = { 'fd','sdfs'};
}
}
});
我无法修改控制器内的数据值如何提前感谢。
答案 0 :(得分:0)
我认为问题可能在于您尝试在控制器中获取data
对象。
您应该尝试通过$scope.data
获取它。所有指令输入都附加到您的内部范围。
$attrs
- 是一个哈希对象,具有标准化属性名称的键值对及其对应的属性值。根据AngularJS文档。
答案 1 :(得分:0)
试试这个
var app = angular.module("myApp", []);
app.controller("prdController", function($scope) {
$scope.data = "krupesh";
$scope.stateChanged = function() {
$scope.data = "kotecha";
}
});
app.directive('myDir', function() {
return {
restrict: 'E',
template: "<div>{{data}}</div>"
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller=prdController as prd>
<my-dir data="prd.data" ng-click=stateChanged()></my-dir>
</div>