angular.js:通过短变量名引用当前模型

时间:2014-03-20 09:45:31

标签: javascript angularjs

假设我使用长表达式(例如

)绑定到模型
 <ul class="container" ui-sortable  ng-model="cssRules.categories['sd-text-highlight-    color']" ng-class="{selected: cssRules.categories['sd-text-highlight-color'] ==    selectedCategory}" ng-click="selectCategory(cssRules.categories['sd-text-highlight-color'])">

有没有办法不重复cssRules.categories ['sd-text-highlight-color'],

并使用某个关键字或指定的变量名称绑定到当前引用的模型?

2 个答案:

答案 0 :(得分:2)

为什么不通过controller之类的方式公开它:

$scope.cssCategory = cssRules.categories['sd-text-highlight-color']

<强> [UPDATE]

关于ng-init替代方案(来自Angular文档):

  

唯一合适的ngInit用于别名特殊属性   ngRepeat的{​​{1}},如下面的演示所示。除了这种情况,你应该   使用控制器而不是ngInit来初始化范围上的值。

More info

这可能是因为它与ui-sortable不能很好地工作,所以我想应该避免使用这种方法。

答案 1 :(得分:2)

尝试使用ng-init:

 <ul 
     class="container"
     ui-sortable
     ng-init="mymodel = cssRules.categories['sd-text-highlight-color']"
     ng-model=""
     ng-class="{selected: mymodel  ==    selectedCategory}"
     ng-click="selectCategory(mymodel )"
>

希望这有帮助