我有一个angularJS应用程序,我有一个数组.
$scope.data[0] = x1;
$scope.data[1] = x2;
Run Code Online (Sandbox Code Playgroud)
和文本区域
<textarea ng-model="data"> </textarea>
Run Code Online (Sandbox Code Playgroud)
我可以看到textarea包含值x1,x2(以逗号分隔).我想在单独的行上显示值.意味着所有数组值应该用新行字符而不是逗号分隔.我需要为此编写过滤器吗?
Kar*_*les 15
您可以编写一个指令来修改ng-model如何将变量转换为输入值并返回.我只是把它写在我的头顶,所以我不知道它是否完全正确,但这样的事情可能会这样做:
app.directive('splitArray', function() {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attr, ngModel) {
function fromUser(text) {
return text.split("\n");
}
function toUser(array) {
return array.join("\n");
}
ngModel.$parsers.push(fromUser);
ngModel.$formatters.push(toUser);
}
};
});
Run Code Online (Sandbox Code Playgroud)
你可以像这样使用它:
<textarea ng-model="data" split-array> </textarea>
Run Code Online (Sandbox Code Playgroud)
Mar*_*bst 15
这正是ng-list:
<textarea ng-model="someArray" ng-list="/\n/"></textarea>
Run Code Online (Sandbox Code Playgroud)
这也适用于所有其他类型的输入,因为它挂钩到ngModels解析器/格式化程序.
看到这个小提琴:http://jsfiddle.net/xbYzT/1/
这个问题是ng-list总是以','作为分隔符加入,所以它不是真正的双向.
Sae*_*ini 14
在Angular> = 1.3中执行此操作的更简单的方法是双向的:
<textarea ng-model="yourStringArray" ng-list=" " ng-trim="false"></textarea>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13406 次 |
| 最近记录: |