0

多分これで自分のスキル不足を誇示します。しかし、私は学ぶことが大好きなので、誇りを手放したいと思っています...

私のviewModelでは、次を定義します。

self.Tags() = ko.observableArray();
self.Skills() = ko.observableArray();

次に、タグを保存します。私はいくつかの処理を行うビューモデルの外でこの関数を作成しました:

function saveTags( category, mytagsArray) { ... }

viewModel 内から 'saveTags( "skill", Skills)' を呼び出すと、self.Tags() が関数ではないというエラーが表示されます。

関数「saveTags」内で self.Tags を参照できないのはなぜですか?

(そして、スキルではなく LackOfSkills であるべきだとは言わないでください... ;)

4

4 に答える 4

1

ここにあなたのためのデモペンがあります。ビューモデルを次のように定義してみてください。

var tagsViewModel = {
    // data
    tagToAdd: ko.observable(""), // this is the new tag to add
    tags: ko.observableArray([]), //empty collection
    skills: ko.observableArray([]),

// behaviors
    addTag: function () {
        var newTag = { Name: this.tagToAdd() };
        this.tagToAdd("");

        tagsViewModel.tags.push(newTag)

    }
};

ko.applyBindings(tagsViewModel);

次のように html を定義します。

<input type="text" placeholder="Add New Tag" data-bind="value: tagToAdd, valueUpdate: 'afterkeydown'" /> <button data-bind="click: addTag, enable: tagToAdd().length > 0" class="btn"><i class="icon-plus"></i> Add</button>

 <ul data-bind="foreach: tags" class="">
<!-- DEFINE UR LI HERE -->
</ul>
于 2013-10-14T13:27:55.310 に答える