AnguarJs: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!");};
});

有人有想法吗?谢谢!

谢谢米尔马塞!

你是对的,我在渲染后打电话给它。也许是因为我使用了 EaselJs 库作为画布。我想在单击此画布内的块后获得更新。

我通过添加解决了它,如果有人有更好的主意,我会尝试一下:

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

我在更改颜色映射对象内的数据后调用此 onChangedLayer 事件。

最新更新