【问题标题】:AngularJS: need to split/parse ng-options valueAngularJS:需要拆分/解析 ng-options 值
【发布时间】:2014-11-06 04:34:31
【问题描述】:

我正在使用的旧数据库将查找值存储在分号分隔的列表中(在表中的单个字段/列中) - 作为 ASP.NET 的数据源工作得很好。但是对于迁移到 AngularJS - 我发现无法拦截该值并将其拆分为选择元素中的单独选项。

在选择下拉列表中,它仅显示(例如)“1 rep;2 reps;3 reps”等。

谁能建议如何拆分这个值,以便选择选项垂直呈现 - 每个选项都在它自己的选项行中?

这是 select 元素现在的样子:

<select
ng-model="exerciseVals[$index].reps1" ng-options="value.REPS as value.REPS for (key,value) in lkps
></select>

【问题讨论】:

    标签: angularjs ng-options


    【解决方案1】:

    ng-options 作用于数组或对象。

    如果我正确理解您的情况,您会从服务器获得一个大字符串,其中包含分号分隔的条目。你需要把它拆分成一个数组。

    $scope.lkps = stringFromServer.split(";");
    

    然后在 HTML 中:

    <select ng-model="selectedVal" 
            ng-options="item for item in lkps">
    </select>
    

    【讨论】:

      【解决方案2】:

      你可以试试这个,我的代码中也包含了!

      Working Code

       <div ng-app>
          <div ng-controller="tempCtrl">
          <select>
          <option ng-repeat="temp in tempdata">
          {{temp}}
         </option>
         </select>
         </div>
       </div>
      

      JS 代码

      var myApp = angular.module('App', ["xeditable"]);
      myApp.controller('tempCtrl',function ($scope) {
      alert();
      $scope.tempdata = ["1 rep","2 rep","3 rep"];
      console.log($scope);
      
      });
      

      【讨论】:

        【解决方案3】:

        你也可以使用角度滤镜:

        <select ng-model ='select'  ng-options="item for item in 'd;g;f'|split:';'">
           <option value="">Nothing selected</option>
        </select>
        

        JS:

        myApp.filter('split',function(){
        
            return function(str,delimeter)
            {
         return str.split(delimeter);
            }
        

        检查working example

        【讨论】:

          猜你喜欢
          • 2014-09-15
          • 2013-01-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多