注意力
这个问题在这里被改写和回答:
我正在尝试使用 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 不起作用吗?