这是我的HTML文件。当我运行HTML页面时,它显示错误,'无法读取属性'拆分'未定义'
<!DOCTYPE html>
<html>
<head>
<script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js"></script>
<script>
var appModule=angular.module('appModule',[]);
appModule.filter('removeDashes',function(){
return function(text){
if(text!==undefined){
return text.split('-').join(' ');
}
}
});
appModule.controller('someCTRL',function($scope){
});
</script>
</head>
<body ng-app="appModule" ng-controller="someCTRL">
<input type="text" model="someDashedText">
<p>
{{someDashedText | removeDashes}}
</p>
</body>
</html>
答案 0 :(得分:2)
if(text!==undefined){
return text.split('-').join(' ');
}
在我看来,上述条件应替换为以下代码
if(text){
return text.split('-').join(' ');
}
此条件检查所有已定义的,非空和非空字符串。
希望这有帮助。
答案 1 :(得分:0)
ng
=&gt;中缺少<input type="text" model="someDashedText">
<input type="text" ng-model="someDashedText">
。
不确定此处是否需要'严格不等于'!==
运算符......,您可能只是检查是否有任何内容if(text)
以下是Plunker。
答案 2 :(得分:0)
我做了一个小代码更改并为过滤器创建了一个单独的模块,并在&#39; appModule&#39;中使用。
你必须使用&#34; ng-model&#34;在输入中。
这是工作脚本。
function onChange(arg) {
var selected = $.map(this.select(), function(item) {
return $(item).text();
});
console.log("Selected: " + selected.length + " item(s), [" + selected.join(", ") + "]");
}
function onDataBound(arg) {
console.log(arg);
console.log("Grid data bound");
}
function onDataBinding(arg) {
console.log(arg);
console.log("Grid data binding");
}
$(document).ready(function () {
$("#grid").kendoGrid({
dataSource: {
transport: {
read: {
url: "//demos.telerik.com/kendo-ui/service/Products",
dataType: "jsonp"
}
},
pageSize: 20
},
height: 350,
change: onChange,
dataBound: onDataBound,
dataBinding: onDataBinding,
selectable: "multiple cell",
pageable: true,
sortable: true,
columns: [
{
field: "ProductName",
title: "Product Name"
},
{
field: "UnitPrice",
title: "Unit Price",
format: "{0:c}"
},
{
field: "UnitsInStock",
title: "Units In Stock"
}
]
});
});
&#13;