在viewModel之前注册淘汰组件的问题
Problems to register a knockout component before viewModel
我正在尝试注册我的登录模式淘汰组件,但在注册组件之前就已经创建了俯视图。
我正在使用requireJs来组织我的js文件。
这是视图
<div data-bind='component: componentModal'></div>
这是我注册的地方
require(['modals/login']);
-在这个里面,有:
require(['jquery', 'knockout', 'text!modals/login.html', 'bootstrap'], function ($, ko, htmlString) {
ko.components.register('login-modal', {
viewModel: function (params) {
console.log(params);
this.text = ko.observable(params && params.initialText || '');
},
template: htmlString
});
});
然后在我的主js文件中,我有:
<script data-main="scripts/main" src="~/Scripts/require.js"></script>
<script>
require(['main'], function () {
require(['modals/login']);
require(['knockout'], function (ko) {
var ViewModel = function () {
var self = this;
self.componentModal = ko.observable('login-modal');
return self;
};
ko.applyBindings(new ViewModel());
});
});
</script>
有人能帮我吗?
我很难理解这一行:
self.componentModal = ko.observable('login-modal');
使用字符串"login-modal"创建一个可观察对象不会有任何作用。它只是一个可观察的字符串登录模式。它不会神奇地包含模态组件。
你的html需要有你的自定义<login-modal></login-modal>
html元素,甚至<div data-bind="component: {name: 'login-modal', params: {your: params}"></div>
应该工作
您的<脚本>标签错误。我认为应该是:
require(['main', 'modals/login', 'knockout'], function(main, login, ko) {
// ... your code here
});
相关文章:
- 组件生命周期问题/无法处理未定义的问题
- 使用PrimeNG组件时出现问题(未找到指令注释)
- Ember组件'jQuery可排序的模板问题
- React.js简单组件组成问题
- 追加新web组件时出现线程问题
- Bootstrap 4旋转木马组件问题
- 反应组件加载问题
- 如何在回调函数的 Angular 1.5 组件中处理这个问题
- ExtJs 扩展组件问题
- 如何使 ember 组件从服务器获取数据.将 AJAX 调用放在组件中似乎不是处理此问题的好做法
- ReactJS - 渲染正确组件的问题
- 寻找 Web 组件来解决这个问题(可能是 SELECT 或不知道)
- JavaScript-呈现仪表组件时出现问题
- React.js显示了悬停问题组件的一部分
- 在viewModel之前注册淘汰组件的问题
- react router问题未捕获错误:不变冲突:元素类型无效:应为字符串(用于内置组件)
- ExtJS 4 -关于MVC架构的问题,使用MVC进行组件开发
- React Native Tabbar iOS绑定问题[期望一个组件类,得到object object]
- 事件没有触发,React组件之间的通信问题
- Angular 1.5的组件问题