AngularJS没有一致编译

时间:2015-11-05 16:21:15

标签: javascript angularjs

我正在研究一个动态可编辑的表指令,有一半时间我刷新页面时,角度组件被解析为它们变量的值,并且它在字面上{{variable}}呈现的时间减少了一半这页纸。以下是该问题的一个问题:

http://plnkr.co/edit/WvzKYQ?p=preview

angular.module('myApp').directive('hmGrid', function ($window) {
   ...
   link: function (scope, element, attrs) {
   ...
   controller: function ($scope) { 
   ...
});

我感觉链接和控制器中的代码(在我的指令中)没有遵循正确的编程习惯,因此不会在页面呈现时进行编译。有人可以帮助重新组织代码,以便每次都能成功呈现吗?

1 个答案:

答案 0 :(得分:0)

尝试将初始化gridoptions的代码移动到指令的控制器中,而不是在单独的控制器中初始化gridoptions,然后将它们传递给指令:

controller: function ($scope, $http) { 
            $http.get('filename.txt').
            success(function(data) {
              $scope.data = data.data;
              $scope.headers = data.headers;
              $scope.headernames = data.headernames;
              $scope.gridShowing = true;
              $scope.editShowing = false;
              $scope.addShowing = false;
              $scope.idx = 0;

              $scope.reversed = false;
              $scope.sortColumn = '';
            });

然后你可以从你的指令中删除gridoptions属性,删除不必要的额外控制器,你的指令应该每次都有效。

更新了plunker here