【发布时间】:2023-03-16 15:59:02
【问题描述】:
注意
此问题已在此处重新表述和回答:
我正在尝试使用 AngularsJS 指令。创建了一个简单的指令,但来自 $http 调用时 {{scopevars}} 不存在。例如:
控制器
function AppCtrl($scope, $routeParams, Card) {
$scope.abc = "this works well";
$scope.user = User.get({userId: 1}, function(user) {
});
}
用户服务(运作良好)
angular.module('userServices', ['ngResource'])
.factory('User', function ($resource) {
return $resource('/user/:userId.json', {}, {
query: {
method: 'GET',
params: {
userId: 'user'
},
isArray: true
}
});
}
这是指令代码(已损坏):
/**
* Create the <pretty-tag>{{var}}</pretty-tag>
*/
.directive('prettyTag', function($interpolate) {
return {
restrict: 'E',
link: function(scope, element, attrs) {
var text = element.text();
var e = $interpolate(text)(scope);
var htmlText = "<b>" + e + "</b>";
element.html(htmlText);
}
};
结果:
// => In HTML view <pretty-tag>{{abc}}</pretty-tag> => <b>this works well</b>.
// => In HTML view <h1>{{user.name}}</h1> => <h1>Bob</h1>.
// => In HTML view <pretty-tag>{{user.name}}</pretty-tag> => Doesn't work (empty).
有人能帮我理解为什么 <pretty-tag>{{user.name}}</pretty-tag> 是通过 $http 调用设置的 var 不起作用吗?
【问题讨论】:
-
什么值分配给“var”变量,或者您可以提供控制器代码或为相同的创建 jsfiddle..
-
您还可以检查您是否错过了您在当前帖子中提供的代码中的括号
标签: angularjs angularjs-directive