我正在尝试创建一个名为“format”的相对基本的过滤器,它删除字符串的前两个字符和字符串的最后两个字符。我认为最好的方法是返回一个像这样的子串:
var tickReg = angular.module('ticketRegister', ['ngRoute']);
tickReg.filter('format', function(){
return function(input)
{
return input.substring(2, input.length-2);
};
});
唯一的问题是...它不起作用:(
这是html:
<span><em><strong>{{guests.server | format}}</strong></em></span>
有什么见解?
我这样做的原因是,出于某种原因,当我使用它时:
<select multiple class="form-control" ng-model="guests.server">
<option>Dylan</option>
<option>Ebens</option>
<option>Lincoln</option>
<option>Mickey</option>
<option>Server 1</option>
<option>Server 2</option>
<option>Server 3</option>
<option>Server 4</option>
<option>Manager</option>
</select>
它将服务器名称存储在引号和方括号内(即[“Dylan”],而不仅仅是Dylan)。以下是此ng模型的相应控制器:
function CalculatorController($scope)
{
$scope.guests =
{
adults : 0,
children : 0,
drinks : 0,
server : undefined
};
}
谢谢! -Pierre
答案 0 :(得分:0)
您看到方括号的原因是您的选择中有multiple
。所以它实际上是用于选择几个服务器的选择,因此关联的模型是包含所有选定服务器的数组。
您不应使用过滤器来访问您的服务器阵列。你应该使用
guests.server[0]
例如,访问第一个选定的服务器。并使用ng-repeat迭代guests.server
并显示所有内容。顺便说一下,变量应该真正命名为servers
,因为它是一个包含多个服务器的数组。
如果您打算选择一个且仅选择一个服务器,则不要在select
上使用multiple属性。