[英]How to get updated value for isolated scope using angular directive?
我有一個指令,它在第一次頁面加載時使xml很適合瀏覽器,它獲取string
值。 但是當值動態更改時, string
不被更新, xml
保持不變。 任何想法在以下指令中實現錯誤以獲取xml
更新值是什么?
html
<div class="tab-pane fade" id="tab2default"><pre class="prettyprint lang-xml" xml="{{string}}"></pre></div>
指令
angular.module('angularModelerApp').directive('prettyprint', function($document) {
return {
restrict: 'C',
scope: {
xml: '@'
},
link: function postLink(scope, element, attrs) {
element.text(vkbeautify.xml(scope.xml, 4));
}
};
});
當指令首次插入DOM時,鏈接功能僅執行一次。 因此,Angular僅在您的代碼中獲得scope.xml的初始值,並且不訂閱更新。
您可能想要類似的東西:
angular.module('angularModelerApp').directive('prettyprint', function($document) {
return {
restrict: 'C',
scope: {
xml: '@'
},
link: function postLink(scope, element, attrs) {
scope.$watch('xml', function(newVal, oldVal) {
element.text(vkbeautify.xml(newVal, 4));
});
}
};
});
有關更多詳細信息,請參閱文檔中有關$ watch的部分: https : //docs.angularjs.org/api/ng/type/$rootScope.Scope
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.