如何<select>使用Angular ng-options 将前导空格添加到选项中?
<div ng-controller="MyCntrl">
Static values (works)
<select>
<option value="black">black</option>
<option value="white"> white</option>
<option value="red"> red</option>
<option value="blue"> blue</option>
<option value="yellow"> yellow</option>
</select>
Values from JS using angular (only the first-default works)
<select ng-model="color" ng-options="c.name for c in colors">
<option value=""> default</option>
</select>
</div>
Run Code Online (Sandbox Code Playgroud)
JS:
angular.module("myApp", []).
controller("MyCntrl", ['$scope', function ($scope) {
$scope.colors = [{
name: 'black',
shade: 'dark'
}, {
name: ' white',
shade: 'light'
}, {
name: ' red',
shade: 'dark'
}, {
name: ' blue',
shade: 'dark'
}, {
name: ' yellow', // spaces here
shade: 'light'
}];
}]);
Run Code Online (Sandbox Code Playgroud)
mic*_*ael 25
您可以格式化选项文本:
<select ng-model="color" ng-options="(' '+c.name) for c in colors">
<option value=""> default</option>
</select>
Run Code Online (Sandbox Code Playgroud)
编辑
如果你想 动态生成它会有点复杂.假设您的控制器中有一个知道 要添加多少的函数,那么您可以像这样编写这个函数:
$scope.addSpaces= function(color){
var count = 1;// put your logic here
var result = "";
for(var i=0; i<count; i++){
result+= String.fromCharCode(160);
}
return result;
};
Run Code Online (Sandbox Code Playgroud)
在您的HTML中它将是:
<select ng-model="color" ng-options="(addSpaces(c)+c.name) for c in colors">
<option value=""> default</option>
</select>
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为我们在字符串而不是实体中连接 (例如 )的unicode字符,因此没有什么可以逃脱的element.text()功能.
| 归档时间: |
|
| 查看次数: |
9024 次 |
| 最近记录: |