在视图中访问AngularJS常量

时间:2014-04-03 12:11:11

标签: javascript angularjs coffeescript

我会试着描述一下这个场景,请跟我说。

我有一个名为Urls的角度常量,其中包含路径和一些访问它们的方法。

app = angular.module "app"

app.constant "Urls",
    routes: 
        # Main stuff
        overview: "/"
        users: "/users"
        user: "/users/:id"

    overview: ->
        return @.routes.overview
    users: ->
        return @.routes.users
    user: (id)->
        return @.routes.user
                    .replace(":id", id)

使用常量的原因是我需要在应用程序的配置阶段访问它,并在控制器中使用它。

我想要实现的是我想在视图中使用它,例如;

<ul class="foo">
    <li ng-repeat="user in users">
        <a href="{{Urls.user(user.id)}}">
            {{user.name}}
        </a>
    </li>
</ul>

有没有办法实现这样的目标?最好不要将Urls常量赋给$ rootScope或将其分配给每个控制器$ scope?

1 个答案:

答案 0 :(得分:11)

不可能。您需要在控制器Urls(或使用$scope的父级)中注入$parent,因为{{ var }}已内插到$scope.var

如果在控制器中注入Urls并写入$scope.Urls = Urls

,则没有任何性能问题

示例:

angular.module('myapp').controller('myController', ($scope, Urls) {
  $scope.Urls = Urls;
}