将值从全局对象设置为单选按钮

时间:2014-05-13 04:27:10

标签: javascript angularjs

我正在尝试将单选按钮组绑定到对象的给定属性。使用这样的代码

<span><input type="radio" value="{{webTES.TripLegType.TimeCall}}" ng-model="tab.Type"/>Time Call</span>
                                    <br/>
<span><input type="radio" value="{{webTES.TripLegType.Immediate}}" ng-model="tab.Type"/>Immediate</span>
                                    <br/>
<span><input type="radio" value="{{webTES.TripLegType.WillCall}}" ng-model="tab.Type"/>Will Call</span>

绑定到prorpety工作,但我还需要从跨应用程序使用的全局对象设置这些单选按钮的值。对象定义如下

var webTES = {
    TripLegType: {
        TimeCall: 0,
        Immediate: 1,
        WillCall: 2
    }
};

我尝试使用{{}},但它不起作用,我讨厌使用硬编码常量。

我如何很好地解决这个问题?

THX

2 个答案:

答案 0 :(得分:2)

尝试将全局放在范围上,并使用ngValue设置单选按钮值:

控制器

$scope.webTES = webTES;

查看

<span>
    <input type="radio" ng-value="webTES.TripLegType.TimeCall" ng-model="tab.Type"/>
    Time Call
</span>
<br />
<span>
    <input type="radio" ng-value="webTES.TripLegType.Immediate" ng-model="tab.Type"/>
    Immediate
</span>
<br />
<span>
    <input type="radio" ng-value="webTES.TripLegType.WillCall" ng-model="tab.Type"/>
    Will Call
</span>

答案 1 :(得分:1)

如果您不需要从Angular应用外部访问它,可以使用value

angular.module('moduleName')
  .value('webTES', {
    TripLegType: {
      TimeCall: 0,
      Immediate: 1,
      WillCall: 2
    }
  });

这样,它就不会挂在窗口对象上了。然后可以将其按名称注入controller,然后将其放在模板可以找到的$scope上。如果要在应用程序加载时配置它,请使用constant。您可以阅读有关值和常量here的内容。