角度フィルターを使用して、角度定数内のネストされた定数の値を取得しようとしています。しかし、値を取得するための効率的な方法を見つけることができません。lodash "^ 2.4.1"の使用が許可されており、_。pickを使用しようとしましたが、それでもルートレベルの定数にしかアクセスできず、ネストされた定数にはアクセスできませんでした。
//consider this
angular.module('myApp',[])
.constants('appConstants', {
CONS1: 'root',
CONS2: {
NEST1: 'nested cons1',
NEST2: 'nested cons2',
}
)
.filter(getConstants, function () {
return function (input) {
var value = appConstants[input];
if (! value) {
var keys = input.split('.');
value = appConstants;
angular.forEach(keys, function(key, index) {
value = value[key];
});
}
return value;
}
});
//where as
appConstants[CONS1]; //works
appConstants[CONS2.NEST1]; // return undefined
//in lodash
_.pick(appConstants, 'CONS2.NEST1'); // returns empty object
Angular$parse
関数を使用するオプションもあります。これは、コンテキストパラメータとしてルート定数オブジェクトを指定すると機能すると思います。
これは次のようになります。
$parse(input)(appConstants)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加