选项绑定不会在下拉列表中填充数据

时间:2014-12-17 14:42:12

标签: javascript html5 knockout.js

我正在使用html页面和淘汰JavaScript,并尝试使用以下脚本在下拉列表中填充一些数据

HTML

    <td>
        <select data-bind="options:transactionType,optionsText:'typeOfTransaction', value:selectedType,optionsCaption:'Type'">
        </select>
    </td>
    @section scripts {
    <script src="~/App/transactionType.js"></script>
   }

淘汰赛

var Type = function (name) {
        this.typeOfTransaction = name;

    };

var viewModel = {
    transactionType: ko.observableArray([
        new Type("Buy"),
        new Type("Sell"),
        new Type("None")
    ]),
    selectedType: ko.observable() // Nothing selected by default
};
ko.applyBindings(viewModel);

但是当我运行脚本时,它给我一个异常

uncaught Error: Unable to parse bindings.
Message: ReferenceError: transactionType is not defined;
Bindings value: options:transactionType,optionsText:'typeOfTransaction', value:selectedType,optionsCaption:'Type'

我有更好的解决方法吗?

1 个答案:

答案 0 :(得分:0)

尝试以下标记:

 <td>
        <select data-bind="options:$root.transactionType,optionsText:'typeOfTransaction',optionsValue:'typeOfTransaction', value:$root.selectedType,optionsCaption:'Type'">
        </select>
    </td>

可能是你的select绑定在foreach绑定之类的另一个绑定中,因为你必须明确提到$root,以便绑定搜索视图模型的根定义中的observable 。此外,您还必须在optionsValue元素绑定中提及select绑定。