訪問視圖我有一個撰寫結合,當迪朗達爾試圖找到app/viewmodels
下它的外觀視圖,而不是app/views
迪朗達爾試圖從視圖模型文件夾
VM看起來像使用構成本
define(["fields/fieldClosures"], function (fields) {
var ctor = function(opt) {
this.value = opt.value;
};
return fields.readonly.default = ctor;
});
查看結合
<div data-name="fields">
<div data-bind="css: { 'has-error': hasError }" class="form-group">
<label data-name="label" data-bind="attr: { 'for': id }" class="col-lg-3 control-label"></label>
<div data-name="field" class="col-lg-9"></div>
</div>
</div>
data-name="field"
被轉換爲數據綁定=「組成:字段」由配置約定庫˚F或KO。如果我用的是標準的撰寫直接結合我得到相同的結果
更新: 路徑VM \軟件\的ViewModels \形式\ \域只讀\ text.js
場是抱着參考成員到VM
這是保持字段構件
define(["fields/fieldClosures",
"fields/readonly/text", //Need to find a better way to load all view models with requirejs without specifying them all here
"fields/readonly/date",
"fields/readonly/number"], function (fields) {
function factory(closure, opt) {
for (var index in closure) {
var model = closure[index];
if (model.can && model.can(opt == null ? null : ko.unwrap(opt.value))) {
return model;
}
}
return closure.default;
}
var id = 0;
var ctor = function(label, value, canEdit, options) {
this.id = "control-" + id++;
this.label = label;
var opt = { value: value, label: label, options: options };
var closure = canEdit ? fields.editors : fields.readonly;
var model = factory(closure, opt);
this.field = new model(opt);
this.field.id = this.id;
this.hasError = canEdit ? ko.computed(this.getHasError, this) : null;
};
ctor.prototype = {
getHasError: function() {
return this.field.value.isValid && !this.field.value.isValid();
}
};
return ctor;
});
useConvention被接通爲VIE的VM wLocator和其他視圖正在工作,它只是這個視圖,不會正確加載。那麼它不會爲被以上述方式加載任何意見工作
- 「田/只讀/文本」
- 「田/只讀/日期」
- 「田/只讀/號」
的參考與工廠創建,但contructors與正常人一樣
更新requirejs注入
領域中的路徑添加在開始做
requirejs.config({
paths: {
'text': '../Scripts/text',
'durandal': '../Scripts/durandal',
'plugins': '../Scripts/durandal/plugins',
'transitions': '../Scripts/durandal/transitions',
"fields": "viewmodels/form/fields"
}
});
顯示使用標準組合綁定的簡短示例,並告訴我們您展示的虛擬機的模塊ID是什麼。 – ebohlman
'
'你是什麼意思與模塊ID? – Anders您顯示的視圖模型的文件名。此外,什麼'field'設置爲(該語法表明它是一個可觀察的,應該保持虛擬機的模塊ID或視圖名稱)? – ebohlman