自定义模态Durandal

时间:2013-03-22 09:34:04

标签: javascript modal-dialog durandal

我一直在努力与durandal框架合作,并且必须说我很高兴。我正在使用http://stephenwalther.com/的电影教程,并进行了一些更改。在Ryan Keeters Youtube视频的帮助下。我已经完成了用模态编辑电影。

但我无法通过模式添加新电影。

我创建了一个add.html和add.js,但是当点击创建新电影的链接时,模态显示它显示我正在中间的页面(就像我进一步点击时的循环)。

这是我对show.html的约束:

<a data-bind="click: viewAddMovieModal">Add Movie</a>

这是javascript:

define(function (require) {
    var self = this;

    var vm = {
        activate: activate,
        title: 'movies page',
        movies: ko.observableArray([])
    };
    //return vm;

   // self.moviesRepository = require("repositories/moviesRepository");
    self.router = require('durandal/plugins/router');
    self.system = require('durandal/system');
    self.app = require('durandal/app');
    self.movie = require('viewmodels/movie');
    self.addmovie = require('viewmodels/add');
    //self.Movies = ko.observableArray([]);
    self.viewMovieModal = function (movie, element) {
        self.app.showModal(movie).then(function (result) {
            if (result) {
                //self.app.showMessage(result.toString(), result.toString());
               vm.movies.remove(movie);
            }
        }).fail(function (result) {
            self.app.showMessage(result.toString(), "Something went wrong!");
        });
    };

    self.viewAddMovieModal = function (addmovie,element) {
      //  self.app.showModal(addmovie).then(function (result) {
         //   self.app.showMessage(result.toString(), result.toString());
      //  });
        self.app.showModal(null, element, addmovie);
    };

    init();

    function init() {
        vm.movies.push(new movie("Star wars", "Piet"));
        vm.movies.push(new movie("Harry Potter", "Jan"));
        vm.movies.push(new movie("Hangover", "Klaas"));
    }

    function activate() {
        self.system.log("I get in the activate function!");
    }

    return {
        activate: activate,
        movie: movie,
        addmovie:addmovie,
        vm:vm,
        viewMovieModal: viewMovieModal
    };
});

0 个答案:

没有答案