javascript - 从服务中获取硬编码的下拉值,而不是直接在 html 中显示

标签 javascript html angularjs drop-down-menu angularjs-service

我有这个html代码。

<select ng-model="Type">
 <option value=""></option>
 <option value="10D">10 Days</option>
 <option value="20D">20 Days</option>
 <option value="30D">30 Days</option>
</select>

我尝试从 angualrjs 服务获取该值,而不是直接在 html 中编码下拉值。

我创建了以下服务

DayServiceMod.service('DayService', ['$http', '$q', function ($http, $q, $scope) {
this.getDayDetails =function() {

    return [
    {DayValue: '10D' , DayDisplay: '10 Day'},
    {DayValue: '20D' , DayDisplay: '20 Day'},
    {DayValue: '30D' , DayDisplay: '30 Day'}

    ];
}

}]);

在 Controller 中提供适当的服务注入(inject)。我尝试如下获取日期类型。

$scope.DayType = DayService.getDayDetails();

在 HTML 中

<select ng-model="Type">
<option value="" disabled>Select Volume...</option>
<option ng-repeat="DayValue in DayType" value="{{DayValue}}">{{DayDisplay}}</option>
</select>

有人可以让我知道我在这里做错了什么吗?

最佳答案

您需要更改您的ng-repeat类似于这样,您在设置 value 时实际访问 JSON 属性和display name <option>的。一切都是一样的,只是为了简单起见,我在 Controller 内对选项数组进行了硬编码。对您而言,主要的更改是 HTML。

HTML

<div ng-app="myapp" ng-controller='FirstCtrl'>
<select ng-model="Type">
  <option value="" disabled>Select Volume...</option>
  <option ng-repeat="Day in DayType" value="{{Day.DayValue}}">{{Day.DayDisplay}}</option>
</select>
</div>

Controller

var myapp = angular.module('myapp', []);
myapp.controller('FirstCtrl', function ($scope) {
  $scope.selectedRegione = 'Mike';
    $scope.DayType =[
    {DayValue: '10D' , DayDisplay: '10 Day'},
    {DayValue: '20D' , DayDisplay: '20 Day'},
    {DayValue: '30D' , DayDisplay: '30 Day'}

    ];
});

为了简单起见并进一步试验此代码,这里提供了 JSFIDDLE 的链接。

关于javascript - 从服务中获取硬编码的下拉值,而不是直接在 html 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44890112/

相关文章:

javascript - 如何舍入输出步骤 .5 (javascript) 并使用输出进行计算?

javascript - Chartjs 与 Vue,条形图边框半径不起作用

jquery:$.data()返回 bool 值而不是字符串

java - 在netty中使用TextWebsocketFrame在不同的TextAreas中写入不同的消息

javascript - Highcharts定制图表

python - 正则表达式替换 html 文档中的文本节点

html - CSS translate 100% 在不同的浏览器中留下不同的差距

javascript - 将服务变量绑定(bind)到指令?

angularjs - 如何巧妙地包含所有必要的文件?

javascript - 根据正确选择的单选按钮显示下拉菜单