如何使用angularJS拆分字符串

Kei*_*dge 46 javascript angularjs

我想知道我是否可以简单地在angularJS中拆分字符串.我有我的

 $scope.test = "test1,test2";
Run Code Online (Sandbox Code Playgroud)

在我的控制器和我看来,我想做那样的事情

{{test[0] | split(',')}}
{{test[1] | split(',')}}
Run Code Online (Sandbox Code Playgroud)

我已经看到很多关于输入和ng-change调用控制器中的一个函数,它将字符串或某些内容与ng-list分开但在我的情况下没有任何作用.

对所有人来说.

leo*_*eon 91

您可能希望将该功能包装到过滤器中,这样您就不必将mySplit功能放在所有控制器中.例如

angular.module('myModule', [])
    .filter('split', function() {
        return function(input, splitChar, splitIndex) {
            // do some bounds checking here to ensure it has that index
            return input.split(splitChar)[splitIndex];
        }
    });
Run Code Online (Sandbox Code Playgroud)

从这里开始,您可以按原样使用过滤器

{{test | split:',':0}}
{{test | split:',':0}}
Run Code Online (Sandbox Code Playgroud)

更多信息,请访问http://docs.angularjs.org/guide/filter(谢谢罗斯)

Plunkr @ http://plnkr.co/edit/NA4UeL

  • 参数需要传递':' - 分隔:`{{表达式| filter:argument1:argument2:...}}`,所以在这种情况下:`{{test | 拆分:",":0}}`.[新文档](http://docs.angularjs.org/guide/filter).我猜这在过去的6个月里有所改变 (7认同)

Kei*_*dge 47

大家好,我终于找到了解决方案,一个非常基本的解决方案..在我的控制器中我有

$scope.mySplit = function(string, nb) {
    var array = string.split(',');
    return array[nb];
}
Run Code Online (Sandbox Code Playgroud)

在我看来

{{mySplit(string,0)}}
Run Code Online (Sandbox Code Playgroud)

  • 通过创建自定义过滤器可以更好地处理这个问题 - https://docs.angularjs.org/guide/filter (6认同)
  • 恭喜您自己找到解决方案.你应该考虑加入你自己的答案. (3认同)

Moh*_*med 30

你可以尝试这样的事情:

$scope.test = "test1,test2";
{{test.split(',')[0]}}
Run Code Online (Sandbox Code Playgroud)

现在你尝试时会得到" test1 "{{test.split(',')[0]}}

你尝试的时候会得到" test2 "{{test.split(',')[1]}}

这是我的plnkr:

http://plnkr.co/edit/jaXOrZX9UO9kmdRMImdN?p=preview

  • 现在我觉得谷歌用谷歌搜索:-) (2认同)