使用没有视图模型 .JS 文件的挖空组件?
Use a knockout component without the view model .JS file?
我正在尝试创建一个剔除组件并从如下文件加载其模板:
function ordersViewModel(){
//whatever
}
function equipmentViewModel(){
//whatever
}
ko.components.register('compact-view', {
viewModel: ordersViewModel,
template: {require: '../views/orders/compactTable.html'},
synchronous: true
});
var MasterModel = function(){
this.orders = new ordersViewModel(),
this.equipment = new equipmentViewModel();
};
var mm = new MasterModel();
我收到以下错误:
Failed to load resource: the server responded with a status of 404 (Not Found)
https://localhost/views/orders/compactTable.html.js
它似乎正在寻找详细的 .js in the docs:
For this to work, the files files/component-like-widget.js
and files/component-like-widget.html
need to exist.
有没有一种方法可以使用组件而不必在另一个文件中分离视图模型?
我正在使用 MasterModel 来从任何其他视图模型调用其他视图模型函数,并且可能将 ordersViewModel
分隔在另一个文件中会使事情变得更加困难。
完全可以做到,你可以单独指定组件的viewModel和模板。
在您的情况下,问题是您在模板路径之前缺少 text!
,因此 RequireJs 尝试将其作为 javascript 资源加载。
此外,您需要包含 RequireJs 文本插件:https://github.com/requirejs/text
//Component with no viewmodel
namespace Components {
export namespace NoViewModelComponent{
export const componentName = 'no-viewmodel-component';
//No Viewmodel as is taken care of elsewhere
(function register() {
ko.components.register(componentName, {
template: {
//using require
require: 'text!' + BASE_URL + 'Views/Components/NoViewModelView.html'
//OR direct html
//'<div > {{My Var}}</div>'
}
});
})();
}
}
我正在尝试创建一个剔除组件并从如下文件加载其模板:
function ordersViewModel(){
//whatever
}
function equipmentViewModel(){
//whatever
}
ko.components.register('compact-view', {
viewModel: ordersViewModel,
template: {require: '../views/orders/compactTable.html'},
synchronous: true
});
var MasterModel = function(){
this.orders = new ordersViewModel(),
this.equipment = new equipmentViewModel();
};
var mm = new MasterModel();
我收到以下错误:
Failed to load resource: the server responded with a status of 404 (Not Found) https://localhost/views/orders/compactTable.html.js
它似乎正在寻找详细的 .js in the docs:
For this to work, the files
files/component-like-widget.js
andfiles/component-like-widget.html
need to exist.
有没有一种方法可以使用组件而不必在另一个文件中分离视图模型?
我正在使用 MasterModel 来从任何其他视图模型调用其他视图模型函数,并且可能将 ordersViewModel
分隔在另一个文件中会使事情变得更加困难。
完全可以做到,你可以单独指定组件的viewModel和模板。
在您的情况下,问题是您在模板路径之前缺少 text!
,因此 RequireJs 尝试将其作为 javascript 资源加载。
此外,您需要包含 RequireJs 文本插件:https://github.com/requirejs/text
//Component with no viewmodel
namespace Components {
export namespace NoViewModelComponent{
export const componentName = 'no-viewmodel-component';
//No Viewmodel as is taken care of elsewhere
(function register() {
ko.components.register(componentName, {
template: {
//using require
require: 'text!' + BASE_URL + 'Views/Components/NoViewModelView.html'
//OR direct html
//'<div > {{My Var}}</div>'
}
});
})();
}
}