我有一个带指令和心室范围变量的html模板(mySelections_class_list):
<pre>{{mySelections_class_list|json}}</pre>
<ng-data-grid cells="columnDefsClassList" rows="class_list" my-selections="mySelections_class_list" lang="lang"></ng-data-grid>
我有一个指令,这是指令代码:
directives.directive('ngDataGrid', ['$rootScope','$location', '$hotkey','$timeout', function($rootScope, $location, $hotkey,$timeout){
return {
transclude: true,
restrict: "EAC",
templateUrl: 'templates/panels/ng-data-grid.html',
scope: {
cells: "=",
rows: "=",
item: "=",
mySelections: "=",
lang: '='
},
controller: ['$scope','$element', function($scope,$element){
$scope.mySelections = 'blabla';
}]
}
}]);
和指令模板,我有ng-model:
<table kb-list ng-model="mySelections" class="data-grid">
....
</table>
但是当我在指令mySelections_class_list中更改时,在我的父控制器中它没有改变!但在模板中我看到了变化!
所以...在模板工作中...但在父控制器中:console.debug($ scope.mySelections_class_list)没有任何变化!为什么!?
感谢您的帮助!
答案 0 :(得分:1)
尝试将父作用域的变量放在某个对象中:
$scope.model = {};
$scope.model.columnDefsClassList = <someValue>;
$scope.model.class_list = <someValue>;
$scope.model.mySelections_class_list = <someValue>;
$scope.model.lang = <someValue>;
<ng-data-grid cells="model.columnDefsClassList" rows="model.class_list" my-selections="model.mySelections_class_list" lang="model.lang"></ng-data-grid>
参见解释here
答案 1 :(得分:0)
我一直在摆弄一下,我不确定你的特定问题来自于一个剥离的jsfiddle和angular 1.3-rc5
<div ng-controller="MyCtrl"></div>
并将MyCtrl定义为空函数,它按预期工作: http://jsfiddle.net/HB7LU/7769/
此外,您应该使用自己的命名空间,为angular指令保留ng。
希望有所帮助:)