我想绑定一个数组(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 事件。