我试图在AngularJS中编写自定义过滤器。此过滤器将使文本大写。在执行代码时,此错误已被抛出“错误:value.split不是函数”
文件“filter.js”:
B
档案“filter.html”:
"use strict";
angular.module("MyApp", []);
angular.module("MyApp").controller("UserController", ["$scope", function($scope)
{
this.infos =
{
firstname: "David",
lastname: "Michel",
cellphone: 123456
};
}]);
angular.module('MyApp').filter('capitalize', function()
{
return function(value){
var result = null;
var words = value.split(' ');
words.forEach(function(item){
if (result){
result += ' ';
}else{
result = '';
}
result += item.substr(0, 1).toUpperCase() + item.substr(1).toLowerCase();
});
return result;
};
});
答案 0 :(得分:0)
问题似乎是你有一个名为value
的函数参数,它隐藏了外部变量value
。
尝试将您的值声明为变量,如下所示:
angular.module('MyApp').filter('capitalize', function()
{
return function(){
var value = 'something';
var result = null;
var words = value.split(' ');
words.forEach(function(item){
if (result){
result += ' ';
}else{
result = '';
}
result += item.substr(0, 1).toUpperCase() + item.substr(1).toLowerCase();
});
return result;
};