页面之间的导航Durandal做ko自动化而不是传递我的模型

时间:2014-06-12 09:52:51

标签: knockout.js durandal

我使用knockout和ajax调用使用durandal编写应用程序。 如果我访问详细页面直接将参数传递给url所有工作,但如果我使用route.navigate从另一个页面访问页面Durandal使用从ajax请求到达的模型而不从我的模型传递所以这会产生很多错误,因为在我的模型中我添加了属性和动作。 我试图添加canReuseForRoute返回false但没有任何改变。

请帮帮我吗?

谢谢。

shell js

{ route: 'movimento/:idLista/:id', moduleId: 'viewmodels/movimento', title: 'Movimento', hash: '#movimento/:idLista/:id', nav:false }

掌握杰斯

 self.editMovimento = function (item) {
        router.navigate('movimento/'+ self.id + '/' + item.id());
    }

详情js:

define(['plugins/router', 'plugins/dialog', 'knockout', 'komapping', 'moment'], function (router, dialog, ko, mapping, moment) {

MovimentoModel = function (data) {
    var self = this;
    mapping.fromJS(data, {}, self);

    self.availableCategories = ko.observableArray();
    self.availableTipiRipetizioni = ko.observableArray();
    self.IsMovimento = ko.observable(true);
    self.IsRipetizione = ko.observable(false);
    self.IsLog = ko.observable(false);

console.log("Pass here only if I press F5 or I enter directly url in browser.");


}     

return {
    activate: function (idLista, id) {
        var self = this;

        var url = baseApiUrl + 'api/movimento/' + id;

        return $.ajax({
            type: "GET",
            url: url,
            headers: headers,
            dataType: 'json'
        }).done(function (data) {
            self.movimento = new MovimentoModel(data);
            self.movimento.idlista(idLista);

            var idcategoria = self.movimento.idcategoria();
            var idtiporipetizione = self.movimento.idtiporipetizione();


            $.ajax({
                type: "GET",
                url: baseApiUrl + 'api/categoria?idlista=' + idLista,
                headers: headers,
                dataType: 'json'
            }).done(function (data) {
                $.each(data, function (index, obj) {
                    self.movimento.availableCategories.push(obj);
                });
                self.movimento.idcategoria(idcategoria);
            });                
        });
    }

0 个答案:

没有答案