0
在下面的代碼中,我有一個指令,每次輸入字段x
被更改時計算變量y
。變量y
已公開,因此可用於聲明控制器/指令。這工作正常,但它是一個簡單的抽象,在我真實的情況下,y
的計算是非常昂貴的,所以我不能計算y
每次x
更改。理想情況下,只有在聲明控制器/指令需要時纔會計算y
。有沒有辦法實現這一點?從指令返回變量而不是暴露示波器
var app = angular.module('app', []);
app.controller('ctl', function() {
});
app.directive("theDirective", function() {
return {
restrict: "AE",
scope: {
y: '='
},
template: '<input ng-model="x" ng-change="xChanged()" />',
link: function (scope, element, attrs) {
scope.xChanged = function() {
scope.y = scope.x * 2;
};
}
}
});
謝謝,但我需要的功能的指令,以從父叫,而不是從編輯我的答案,包括場景,以及一個孩子 – ps0604
。 –
這種方法存在問題。由於'$ broadcast'是異步的,如果子進程中的函數需要時間來處理,則父進程不知道何時結束,因此它不能從該作用域中獲取該變量。 – ps0604