Angularjs ngModel在特定情况下不更新
好吧,我已经盯着这个代码看了好几个小时了,它根本没有任何意义 我试图遍历扩展类型列表,并将它们显示在下拉列表中,以便与复选框一起使用。问题是,当我在Angularjs ngModel在特定情况下不更新,angularjs,Angularjs,好吧,我已经盯着这个代码看了好几个小时了,它根本没有任何意义 我试图遍历扩展类型列表,并将它们显示在下拉列表中,以便与复选框一起使用。问题是,当我在sk checkbox指令中检查ngModel时,它不正确。在一种情况下,ngModel是正确的,我可以看到值从true->false切换,但在另一种情况下,我的ngModel从undefined->true切换。。。为什么ng模型在第一个实现中能正常工作,而在第二个实现中却不能 这一个有效 {{ normalizeIcons(user.UI.Res
sk checkbox
指令中检查ngModel时,它不正确。在一种情况下,ngModel是正确的,我可以看到值从true->false
切换,但在另一种情况下,我的ngModel从undefined->true
切换。。。为什么ng模型
在第一个实现中能正常工作,而在第二个实现中却不能
这一个有效
{{ normalizeIcons(user.UI.Restore.Files.dataSet) | json }}
<li ng-repeat="icon in normalizeIcons(user.UI.Restore.Files.dataSet)">
<div sk-checkbox ng-model="user.UI.Restore.Files.filter[icon]" name="icon-{{icon}}" ></div>
<img sk-img class="extIcon {{icon}}" />
</li>
所以这里唯一的区别是,我正在做更多的工作来解析一个角度常数,ICONS.map
。不起作用的情况只是使用一个简单的数组赋值
在我使用第一个有效的实现之前,我没有想到它。现在,我希望能够返回一个固定的图标数组,然而,假设更简单的版本是不起作用的
图标常数
{
map: {
'docx': 'word',
'doc': 'word',
'dot': 'word',
'dotx': 'word',
'xls': 'excel',
'xlsx': 'excel',
'xlt': 'excel',
'xltx': 'excel',
'ppt': 'powerpoint',
'pps': 'powerpoint',
'pptx': 'powerpoint',
'pot': 'powerpoint',
'potx': 'powerpoint',
'pdf': 'adobe-pdf',
'ai': 'adobe-ill',
'ait': 'adobe-ill',
'eps': 'adobe-ill',
'psd': 'adobe-photo',
'psb': 'adobe-photo',
'png': 'image',
'jpg': 'image',
'jpeg': 'image',
'gif': 'image',
'tif': 'image',
'svg': 'image',
'vsd': 'visio',
'vdx': 'visio',
'vsdx': 'visio',
'vss': 'visio',
'vsx': 'visio',
'vst': 'visio',
'vtx': 'visio'
},
list: ['word', 'excel', 'powerpoint', 'adobe-pdf', 'adobe-ill', 'adobe-photo', 'image', 'visio', 'default']
}
那么你得到了什么回报?我们不知道什么是
图标。请列出is@charlietfl更新了…我已经在控制台上记录了这两个数组,它们的数组是相同的,只是顺序与此无关。好的…那不是数组,而是嵌套对象。需要为ng repeat
um.使用对象语法。。我不是在对象上迭代。。。我正在迭代图标。列出图标对象底部的数组
service.normalizeIcons = function(data){
var icons = [];
if(data) {
var exts = _.pluck(data, 'extension');
var unique = _.uniq(exts);
var iconClasses = [];
unique.forEach(function(ext){
iconClasses.push(ICONS.map[ext] || 'default');
});
icons = _.uniq(iconClasses);
}else{
icons = ICONS.list;
}
return icons;
}
{
map: {
'docx': 'word',
'doc': 'word',
'dot': 'word',
'dotx': 'word',
'xls': 'excel',
'xlsx': 'excel',
'xlt': 'excel',
'xltx': 'excel',
'ppt': 'powerpoint',
'pps': 'powerpoint',
'pptx': 'powerpoint',
'pot': 'powerpoint',
'potx': 'powerpoint',
'pdf': 'adobe-pdf',
'ai': 'adobe-ill',
'ait': 'adobe-ill',
'eps': 'adobe-ill',
'psd': 'adobe-photo',
'psb': 'adobe-photo',
'png': 'image',
'jpg': 'image',
'jpeg': 'image',
'gif': 'image',
'tif': 'image',
'svg': 'image',
'vsd': 'visio',
'vdx': 'visio',
'vsdx': 'visio',
'vss': 'visio',
'vsx': 'visio',
'vst': 'visio',
'vtx': 'visio'
},
list: ['word', 'excel', 'powerpoint', 'adobe-pdf', 'adobe-ill', 'adobe-photo', 'image', 'visio', 'default']
}