我开始使用指令,现在我正在尝试使用权限级别渲染按钮。
假设我要渲染此按钮
<a ui-sref="#" data-toggle="modal" data-target="#modalCadastro"><div id="addButton" class="btn btn-success">Add</div></a>
指令:
.directive('test', function($http){
$http.get('system/test/gettemplate')
.then(function(response){
if(response.data.success){ // small verification to know if it worked and i got a string with the template
$scope.template = response.data.template;
}
})
return{
restrict: 'AE',
scope:{},
template: $scope.template // which is my template that comes from back-end
}
})
我知道我错过了一些非常小的东西,但我是Angular的新手。
答案 0 :(得分:2)
您应该在.then
来电的$http
内退回模板。这是异步调用,因此在尝试return { ... }
时,$scope.template
可能尚未设置。
.directive('test', function($http) {
$http.get('system/test/gettemplate').then(function(response) {
if(response.data.success) {
$scope.template = response.data.template;
return {
restrict: 'AE',
scope:{},
template: $scope.template
}
}
});
});