角应用中可重复使用的字符串

时间:2015-05-18 03:31:08

标签: angularjs

在应用程序中,某些对象具有图标。在PHP中我会打电话给

class Icons {
    const OBJECT_A_ICON = 'fa-icona';
    const OBJECT_B_ICON = 'fa-iconb';
    const OBJECT_C_ICON = 'fa-iconc';
}

echo Icons::OBJECT_C_ICON;

以角度方式执行此操作的最佳方法是什么?

4 个答案:

答案 0 :(得分:3)

angular.constant

https://docs.angularjs.org/api/auto/service/ $提供#恒定

看起来像是:

angular.module('app', [])
.constant('OBJECT_A_ICON', 'fa-icona');

或者你可以将它们全部放在一个对象中。

答案 1 :(得分:2)

使用服务:

angular.module('myApp').factory('icons', function(){
    return {
        icon_1: '',
        icon_2: ''
    };
})

.controller('myController', function(icons) {
    console.log(icons.icon_1);
});

答案 2 :(得分:1)

使用constant服务。

<强> Constant Docs

angular.module('app', [])
  .constant('ICON_CONSTANT', {
    Icon_A: 'fa-icona',
    Icon_B: 'fb-iconb',
    Icon_C: 'fc-iconc'
  })
  .controller('cntrl', function($scope, ICON_CONSTANT) {
      $scope.icon = ICON_CONSTANT.Icon_A;
  });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
  <div ng-controller="cntrl">
    {{ icon }}
  </div>
</div>

答案 3 :(得分:0)

听起来你正在寻找常量或不可变对象。常规javascript或angular中没有不可变对象,因此您可能希望使用标准的$ scope变量。 MK的答案非常可靠。这很有意思:https://facebook.github.io/immutable-js/