0

SPA にいくつかのシングルトン ビューがあり、これらの各ビューには同じウィジェットが含まれています。

ビューがアクティブ化されると、アクティブ化コールバックからいくつかのパラメーターを取得してウィジェットに渡すと、正常に動作します。

しかし、ビューに 2 回目に移動すると (アクティブ化コールバックに異なるパラメーターを使用して)、ウィジェットのアクティブ化メソッドが正しく発生しません。

新しいデータをウィジェットに渡すにはどうすればよいですか?

パラメーターを監視可能にしてウィジェット (settings.params.subscribe) にサブスクライブしようとしましたが、うまくいきましたが、良い解決策だとは思いません。

4

1 に答える 1

2

ウィジェットからコンストラクターを返すと仮定すると、これは非常に単純なはずです-

モデルを見る -

var thisWidget = new widget(someArbitraryData)

function createWidget() {
    dialog.show(thisWidget);
}

// later
function updateWidget() {
    thisWidget.refreshData(newArbitraryData);
}

ウィジェットモジュール -

define([], function () {
    var ctor = function () {
        var self = this;
        self.data = ko.observable();
    };
    ctor.prototype.refreshData = function (newData) {
        var self = this;
        self.data(newData);
    };
    ctor.prototype.activate = function (activationData) {
        var self = this;
        self.data(activationData);
    };
});
于 2014-05-16T21:25:54.587 に答える