Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用型号的Angularjs ng-options不会选择初始值大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试使用Ng选项与< SELEct>以将数值整数值绑定到相应选项的列表。在我的控制器,我有这样的东西: @H_89_1@myApp.controller('MyCtrl',function() { var self = this; var unitOptionsFromServer = { 2: "mA",3: "A",4: "mV",5: "V",6: "W",7: "kW" }; self.unitsOptions = Object.keys(unitOptionsFromServer).map(function (key) { return { id: key,text: unitOptionsFromServer[key] }; }); self.SELEctedUnitOrdinal = 4; // Assume this value came from the server. });

HTML:

<div ng-controller="MyCtrl as ctrl">
    <div>SELEctedUnitOrdinal: {{Ctrl.SELEctedUnitOrdinal}}</div>
    <SELEct ng-model="ctrl.SELEctedUnitOrdinal" ng-options="unit.id as unit.text for unit in ctrl.unitsOptions"></SELEct>
</div>

这里有一个jsFiddle演示了这个问题,以及一些其他的方法,我已经采取,但不满意。

正在使用空值初始化选择选项,而不是本示例中预期的“mV”。如果选择不同的选项 – SELEctedUnitOrdinal更新正确,绑定似乎工作正常。

我注意到,如果你设置初始模型值为一个字符串而不是一个数字,那么初始选择工作(见#3在小提琴)。

我真的想让ng选项玩数字选项值。我该如何优雅地实现?

Angular的ng-SELEct指令文档解释了如何解决这个问题。见 https://code.angularjs.org/1.4.7/docs/api/ng/directive/select(最后一部分)。

可以创建一个convert-to-number指令,并将其应用到SELEct标记

JS:

@H_89_1@module.directive('convertTonumber',function() { return { require: 'ngModel',link: function(scope,element,attrs,ngModel) { ngModel.$parsers.push(function(val) { return val != null ? parseInt(val,10) : null; }); ngModel.$formatters.push(function(val) { return val != null ? '' + val : null; }); } }; });

HTML:

<SELEct ng-model="model.id" convert-to-number>
  <option value="0">Zero</option>
  <option value="1">One</option>
  <option value="2">Two</option>
</SELEct>

注意:我发现从doc的指令不处理null,所以我不得不调整一点。

大佬总结

以上是大佬教程为你收集整理的使用型号的Angularjs ng-options不会选择初始值全部内容,希望文章能够帮你解决使用型号的Angularjs ng-options不会选择初始值所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。