2014-10-30 40 views
0

我有指令和patricular范围变量(mySelections_class_list)一个HTML模板:伍模型在指令不改变亲本范围在控制器

<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-型号:

 <table kb-list ng-model="mySelections" class="data-grid"> 
.... 
     </table> 

但是,当我公顷d在指令mySelections_class_list中更改,在我的父控制器中它不会改变!但在模板中,我看到了变化!

所以...在模板工作中...但在父控制器:console.debug($ scope.mySelections_class_list)没有任何改变!为什么!?

感谢您的帮助!

回答

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

+0

谢谢!是工作! – user3774629 2014-10-30 12:41:14

0

我一直在摆弄了一下周围,我不知道从哪里你的具体问题是从未来一个精简的jsfiddle和角1.3-RC5

<div ng-controller="MyCtrl"></div> 

和定义MyCtrl为空的功能,它按预期方式工作: http://jsfiddle.net/HB7LU/7769/

此外,您应该使用自己的名称空间,ng保留用于角度指令。

希望能帮到:)