0
模板:隔離範圍值將被替換,只有當它存在 - AngularJS指令
<ui-print text="Print" panel="#paper1"
wait-for-data="adc.waitForData"
callfront-fn="adc.someFunction()"></ui-print>
<ui-print text="Print" panel="#paper2"></ui-print>
指令:
scope: {
text: '@',
panel: '@',
callfrontFn: '&',
waitForData: '='
},
link: function($scope) {
var invokePrint = function(panel) {
$window.print();
$scope.waitForData = true;
}
$scope.printPanel = function(panel) {
if (!$scope.waitForData) {
invokePrint(panel);
} else {
$scope.callfrontFn();
}
};
$scope.$watch('waitForData', function(n) {
if (n === false) {
invokePrint($scope.panel);
}
});
}
嗨,大家好,我試圖瞭解如何隔離範圍在這裏工作。如果你看看上面的代碼,有2個元素指令。 1有waitForData而另一個沒有。
在第二指令,當我invokePrint()
且有$scope.waitForData=true
,這是不觸發$watch
。但在第一個指令它。
是不是像隔離範圍沒有通過它的值不能替換的指令?我不明白爲什麼它的行爲如此。
我只是想知道爲什麼手錶沒有在第二條指令中觸發$scope.waitForData = true
,而是在第一條指令中觸發。
對不起,由於安全原因,我無法發佈整個代碼。但是這是需要調試的代碼。
在此先感謝!
正如你可以在你的第二個指令模板中看到的'callfrontFn:'&''和'waitForData:'=''在你的隔離範圍內。所以它不會工作。 –
,所以這兩個範圍都指向模板的相應屬性。我認爲你需要詳細地通過'指令'。這會幫助你更好地理解。 –