0

デュランダル スターター キットを入手し、検索ボックスを使用しようとしました。shell.html で入力ボックスを変更して、searchTerm へのデータバインディングを設定しました。

 <form class="navbar-search pull-right" data-bind="submit:search">
 <input type="text" class="search-query" placeholder="Search" data-bind="value:searchTerm">
 </form>

次に、shell.js で、次のコードを使用して観察可能な searchTerm を追加しました。

define(function(require) {
    var router = require('durandal/plugins/router'),
    app = require('durandal/app');   

var searchTerm = ko.observable();
return {
    searchTerm: searchTerm,
    router: router,
    search: function() {

        app.showMessage('Search for ' + searchTerm() + ' not yet implemented');

    },
    activate: function () {
        return router.activate('welcome');
    }
 };
});

このコードは、IE (9 および 10) を除くすべてのブラウザー (Chrome、Firefox、Safari) で機能します。問題は、IE では searchTerm() が常に未定義であることです。本番アプリでも同じ問題が発生していますが、この単純なケースで再現できました。ここで何が欠けていますか?

4

2 に答える 2