AnguarJs:ng-repeat仅在指令

时间:2017-01-17 18:55:16

标签: angularjs-directive binding angularjs-ng-repeat ng-repeat

我想绑定一个数组(customLayers)并将其用于ng-repeat。 我在kv.colorMap对象中填充数组。 我有三个指令使用这些技术。但该指令仅在按下此指令中的无函数按钮(checkResult)后才在视图上更新绑定数组。

指令模板代码:

...
<div class="createInfo colorExprContainer">
    <div ng-repeat="layer in customLayers">{{layer.color}}</div>
</div>

<div class="buttonWrapper text-center">
    <button class="btn" ng-click="checkResult()">Ergebnis prüfen</button>
</div>
...

指令JavaScript代码:

app.directive('boolKv', function($parse, $timeout){
return {
    restrict: 'E',
    replace:true,
    scope:true,
    templateUrl: "directives/boolKV/boolKV.html",
    link: function($scope, $element, $attr) {
        ...
        var kv = new BAKV({target: cv[0].id, expr: expr});
        $scope.customLayers = kv.colorMap.layers;
        ...
        $scope.checkResult = function(){console.log("it works!");};
});

有人有想法吗? 非常感谢你!

1 个答案:

答案 0 :(得分:0)

谢谢MirMasej!

你是对的,我在渲染后调用它。也许是因为我使用了画架的EaselJs库。我想在点击此画布内的一个块后获得更新。

我通过添加来解决它,如果有人有更好的想法我会尝试:

kv.colorMap.onChangedLayer = function(layer) {
      $timeout(function(){
            $scope.$apply();
       });
};

我在更改colorMap对象内的数据后调用此onChangedLayer事件。