如何让多个键引用AngularJS中的一个值

时间:2016-12-20 16:35:31

标签: javascript angularjs

我有以下AngularJS值提供程序:

myApp.value('myValueProvider',
{
    'k1': 'v1',
    'k2': 'v2',
    'k3': 'v2'
});

其中' v2'是一个复杂的对象,所以我不想复制从k2到k3的每个v2值。

所以我的目标是获得这样的东西:

myApp.value('myValueProvider',
{
    'k1': 'v1',
    'k2': 'v2',
    'k3': myValueProvider.k2
});  

你知道它是否可能吗?

2 个答案:

答案 0 :(得分:-1)

这样的事情怎么样:

// create the complex object that you want to assign to multiple properties
var complexObj = {
    ... your complex obj props ...
};

// create the provider object and assign the complex object reference to multiple properties
var valueProviderObj = {
    k1: 'v1',
    k2: complexObj,
    k3: complexObj
};

// associate the provider object to the angular value by key name
myApp.value('myValueProvider', valueProviderObj);

答案 1 :(得分:-1)

您可以在run阶段进行更改。



var myApp = angular.module('myApp', []);

myApp.value('myValueProvider',
{
    'k1': 'v1',
    'k2': 'v2'
});

myApp.run(function(myValueProvider) {
  myValueProvider.k3 = myValueProvider.k2;
});

myApp.controller('ctrl', function(myValueProvider) {
  console.log('from controller', myValueProvider);
});

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="ctrl"></div>
&#13;
&#13;
&#13;