0
說我有一個指令,接受一個名爲「url」的屬性,可以由表達式和靜態文本組成,「url」的評估結果將用作指令模板中ng-include的url。在我嘗試使用它之前,如何從指令中檢查,該屬性是否已完全評估(即所有表達式已定義),以便每次都不會收到404錯誤?AngularJS指令 - 如何判斷屬性的表達是否完全評估?
app.controller('MyCtrl', function($scope, $timeout) {
$timeout(function(){
$scope.form = { id: 'test' };
}, 1000)
})
.directive('ngMyForm', function() {
return {
template: '<div ng-include="formUrl"></div>',
link: function(scope, element, attrs) {
attrs.$observe('url', function(value) {
// how do I make sure that value's expression is fully "resolved" before using it?
scope.formUrl = value;
});
}
};
});
這裏的HTML:
<body ng-controller="MyCtrl">
<div ng-my-form="{{form.id}}_sometext" url="/form/{{form.id}}_sometext"></div>
</body>
我已經在這裏建立了一個普拉克:http://plnkr.co/edit/MDhUpT?p=preview
謝謝,ng-if對我有用。 – Nick