0
我是新來的流星:)流星 - 複選框保持舊值
我有一個模板幫手:
userRoleMap: function() {
var u = getUser();
if (u) {
var lstRoles = Meteor.roles.find({}).fetch();
var userRoles = u.roles ? u.roles : [];
_.map(lstRoles, function(r) {
_.extend(r, {
userMapped: _.contains(userRoles, r.name)
});
return r;
});
return lstRoles;
}
return [];
}
我使用這個幫手我的模板爲:
{{#each userRoleMap}}
<div class="checkbox">
<label>
<input type="checkbox" class="chkUserRole" value="{{name}}" checked="{{userMapped}}"> {{name}}
</label>
</div>
{{/each}}
我在bootstrap-mode中顯示上面的html/template。我點擊一個按鈕(並在調用getUser()函數時在我使用的Session中設置用戶標識)顯示此模式。
問題是複選框檢查狀態不會根據「userMapped」的值而改變。它是第一次正確設置,但不是事後。幫助程序userRoleMap
每次打開模式時都會被調用,但複選框的狀態與之前打開時的狀態相同(手動檢查/取消選中狀態)。
輔助方法的返回值按預期工作(通過將其記錄在控制檯上進行驗證)。
我在這裏失蹤的任何東西?與_.extend()有關嗎?