杜兰达尔's激活剂
Durandal's activator
我在Durandal中偶然发现了与Activator Lifecycle Callback
相关的问题。
这是我的模型和一堆回调。
define(function () {
return {
activate: activate,
viewAttached: viewAttached,
detached: detached,
deactivate: deactivate,
title: 'Lifecycle'
};
function activate() {
debugger;
}
function viewAttached() {
debugger;
}
function detached() {
debugger;
}
function deactivate() {
debugger;
}
});
但没有提出分离的和停用的方法。
根据文档,这些回调在存在激活程序时运行。因此,问题是如何将激活器模块添加到我的模型中?
更新:模型的组成看起来像:
<!-- ko compose: { model: 'lifecycle', activate: true } -->
<!-- /ko -->
您使用的是什么版本的Durandal?
如果您使用的是Durandal 1.x,则不存在"分离"方法。它是在2.0版本中添加的。此外,在2.0版本中,"viewAttached"方法已更改为"attached"。
无论版本如何,"deactivate"方法的拼写都不正确。结尾没有"d"。
在https://github.com/dFiddle/dFiddle-1.2/blob/gh-pages/App/samples/knockout/index.js例如如何手动使用CCD_ 2。
define(function () {
var system = require('durandal/system'),
viewModel = require('durandal/viewModel');
return {
activeSample:viewModel.activator(),
introSamples: [{
name: 'Hello World',
hash: '#/knockout-samples/helloWorld',
moduleId: 'samples/knockout/helloWorld/index'
},
...
],
activate: function (args) {
var that = this;
if (!args.name) {
args.name = 'helloWorld';
}
return system.acquire('samples/knockout/' + args.name + '/index').then(function(sample) {
that.activeSample(sample);
});
}
默认情况下,router
实现一个激活器,因此所有事件生命周期事件都可用。通过使用activate: true
,仅启用事件的子集。
Durandal的1.2文档自2.0发布后就无法在线获取,但仍可从http://durandaljs.com/pages/downloads/.以下是Hooking-Lifecycle-Callbacks.html
中解释该场景的相关部分。
- 路由器有一个名为"activeItem"的内部激活程序,用于管理当前页面
- 您可以随时自己创建一个激活器,方法是需要视图模型模块并调用它的激活器函数。这会返回作为对象的激活器的计算可观察对象
- 当您调用
app.setRoot
时,会在根模块上使用一个激活器- 如果在组合绑定上设置
activate:true
,则在组合过程中将使用激活剂注意:情况3和4有点不同,因为它们只强制执行canActivate和activate回调;而不是去激活生命周期。要启用此功能,您必须自己使用完全激活器(情况1或2)。
相关文章:
- 杜兰达尔默认路线有效,其他什么都没有
- 击倒杜兰达尔这个..不是闹着玩
- 与杜兰达尔合作的第一个JavaScript项目.尝试从第三方 API 获取数据
- 如何下载杜兰达尔示例项目(Hello World)的源代码
- 杜兰达尔单调问题
- 未能加载路由模块requirejs?杜兰达尔虫
- 如何创建可重复使用的杜兰达尔小部件
- 杜兰达尔 2.0.1,最初加载所有文件
- 挖空映射对象未由杜兰达尔视图模型返回
- 杜兰达尔.js文件准备好了
- 如何避免杜兰达尔 2 中的全局变量
- 杜兰达尔/要求:模块加载和执行
- Ko未定义错误杜兰达尔
- 杜兰达尔 - 在大纲详细信息示例中调用了两次激活
- 小部件中的杜兰达尔事件
- 杜兰达尔 2.0.1,尝试激活一次又一次地被调用
- 在带有敲除和杜兰达尔的揭示原型模式中对“这个”的混淆
- 杜兰达尔2.0“路线”
- 杜兰达尔淘汰赛点击事件
- 杜兰达尔's激活剂