3
我想在Angularjs中使用指令来检查用户是否是为了相应地更改模板而自己。
例如
<li is-self >
<a ng-show="logged_in" ng-href="https://stackoverflow.com/users/{{user.public_id}}"> Settings </a>
</li>
诚然,这可能不是这个问题的最好办法,但我想不出更好的办法,此刻做到这一点。
但是我遇到的问题是,我不能做的指令中的HTTP请求,因此我不得不把它放在一个控制器,并引用其作为范围函数即
user_controller
$scope.isSelf = ->
$http({method: 'GET', url: '/is_self/' + $routeParams.id}).
success((data, status, headers, config) ->
if data
$scope.logged_in = true
).
error((data, status, headers, config) ->
console.log(data)
)
然而
user_module
userModule.directive('isSelf',() ->
link: ($scope) ->
$scope.isSelf()
这种技术带来了一个问题,因为该指令被跨多个文件和多个控制器使用。我认为最合适的解决方案就是在指令中执行请求,但这不起作用,因为您似乎无法将$ http传递给它。
我的理想的解决方案是什么,我有一个像
userModule.directive('isSelf',() ->
link: ($scope, $http) ->
$http({method: 'GET', url: '/is_self/' + "3f8686589ad"}).
success((data, status, headers, config) ->
if data
$scope.logged_in = true
).
error((data, status, headers, config) ->
console.log(data)
)
)
组合显然我相当新的框架,所以任何帮助将不胜感激。
可能您发布解决自己的问题下面并将其标记为接受的答案?它将从“未答复”类别中删除它。 – 2013-02-11 15:28:06
难道你不能只是创建一个绑定到你的指令的控制器来允许它始终使用指令创建吗? – Oak 2014-01-20 21:41:21