我在應用程序周圍使用範圍來在執行異步請求時顯示微調器。指令不更新我的範圍
也就是說範圍是:$scope.showSpinner = true/false
現在我工作的一個指令和代碼是這樣的:
'use strict';
angular.module('orders').directive('resetOrder', ['$rootScope', function ($rootScope) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var order_id = attrs.resetOrder;
element.bind('click', function (event) {
event.stopPropagation();
alertify.confirm(
'Warning!',
'Are you sure you wish to RESET order id: ' + order_id + '?',
function() {
scope.showSpinner = true;
[ ... ]
}, function() {
return;
}
);
});
}
};
}]);
scope.showSpinner
是不被傳播,我沒有看到積極的微調按下一次重置按鈕。
我試過到目前爲止:
我轉換$scope
到$rootScope
,沒有奏效。 我加了scope.$apply()
甚至$rootScope.$apply()
,沒有工作。 我把它包裝在$timeout
之內,沒用。 我創建了一個範圍:{showSpinner:'='},不起作用。
我不能擺脫這個問題。 我做錯了什麼?
這裏是我添加的指令在HTML:
<button reset-order="{{ order.id }}">
感謝您的幫助提前。
它可能是因爲scope.showSpinner如果您的指令是在一個子範圍內。嘗試範圍$ parent.showSpinner = true來確認。如果這能解決它,你就知道原因。 – pixelbits
也不能使用這個解決方案......謝謝。 –
顯然在這一點上猜測。你可以展示一個簡短的蠕蟲來證明這個問題嗎? – pixelbits