<div>
<div data-bind="compose:'viewmodels/header'"></div>
</div>
我正在使用Durandal Composition,如上面的代碼行所示。是否有可能傳遞一些額外的參數到我的視圖模型,而使用組合?例如,「迪朗達爾/應用程序」,「迪朗達爾/ viewLocator」,它們在main.js正常傳遞'迪朗達爾/系統的參數文件?Durandal Composition
<div>
<div data-bind="compose:'viewmodels/header'"></div>
</div>
我正在使用Durandal Composition,如上面的代碼行所示。是否有可能傳遞一些額外的參數到我的視圖模型,而使用組合?例如,「迪朗達爾/應用程序」,「迪朗達爾/ viewLocator」,它們在main.js正常傳遞'迪朗達爾/系統的參數文件?Durandal Composition
是的,你可以通過activationData像:
compose: {
model:'yourModel',
view: 'yourView',
activationData: [param1, param2],
activate: true }
我不相信你可以傳遞一個數組作爲ActivationData。但是你可以在JavaScript對象中傳遞一個數組。我似乎回憶起在某個地方閱讀某些東西。
在迪朗達爾版本1.1,同時使在composition.js tryActivate方法內viewModel.activator()。activateItem()的調用activationData不通過。我通過它明確地得到在視圖模型activationData的值,如下所示:
function tryActivate(settings, successCallback) {
if (shouldPerformActivation(settings)) {
viewModel.activator().activateItem(settings.model).then(function (success) {
if (success) {
successCallback();
}
});
} else {
successCallback();
}
}
只有視圖模型參數傳遞給activateItem由上述可見。我也從那裏通過activationData參數如下:
viewModel.activator().activateItem(settings.model,settings.activationData).then(function (success) {
if (success) {
successCallback();
}
});
我們如何訪問激活方法中傳遞的參數? – user2585299
像{激活:函數(參數1,參數2){執行console.log([參數1,參數2])}} –
是的,我沒有嘗試之前,但我不斷收到值作爲甚至當我嘗試通過激活功能未定義像10一樣的恆定值。 – user2585299