Javascript Codemirror与Knockout的集成

Javascript Codemirror与Knockout的集成,javascript,knockout.js,codemirror,Javascript,Knockout.js,Codemirror,我想实现一个行为:当我从出现在codemirror文本区的代码组合框中选择特定模板时。 请看我的小提琴: 我修正了你的密码。有很多无用的代码。所以,如果我删除太多,请告诉我 这是一种观点: <select data-bind="options: availableTemplates, value: selectedTemplate, optionsText: 'Name'"></select>

我想实现一个行为:当我从出现在codemirror文本区的代码组合框中选择特定模板时。 请看我的小提琴:


我修正了你的密码。有很多无用的代码。所以,如果我删除太多,请告诉我

这是一种观点:

<select data-bind="options: availableTemplates,
                   value: selectedTemplate,
                   optionsText: 'Name'"></select>
<br />
<div data-bind="with: selectedTemplate">
    <textarea cols="60" rows="8" style="background: lightblue"
     data-bind="value: Code,
                codemirror: { 'lineNumbers': true, 'mode': 'javascript' }">
     </textarea>
</div>
以及视图模型:

// Overall viewmodel for this screen, along with initial state
function ValidationViewModel() {
    var self = this;
    self.selectedTemplate = ko.observable();

    // Non-editable data - would come from the server
    self.availableTemplates = [{
        Name: "Range Validation",
        Code: "var minValue = 'A';\r\nvar maxValue = 'Z';\r\n\r\nreturn (e.value >= minValue && e.value <= maxValue) \r\n   ? true \r\n   : 'this is all wrong!';"
    }, {
        Name: "DateTime",
        Code: "var newDate = new Date(e.value);\r\n\r\nif (newDate != 'Invalid Date')\r\n   return true; \r\n\r\nreturn 'value is not a valid dateTime';"
    }, {
        Name: "Decimal",
        Code: "if (e.value == null || e.value.length == 0)\r\n   return 'please, type something'; \r\n\r\nreturn isFinite(e.value);"
    }];


}

希望能有帮助。

对不起,我刚意识到我忘了拉小提琴。请你解释一下什么是不工作的基础上小提琴。代码从选定的模板已出现在公共文本区,但我希望代码已出现在codemirror区。如果我添加ko.bindingHandlers.codemirror,它将无法正常工作。代码尚未出现在codemirror区域中。我做错了什么?抱歉问了这么多愚蠢的问题,但我只是在学习,谢谢你的快速回答。好的。我得到了它。非常感谢
// Overall viewmodel for this screen, along with initial state
function ValidationViewModel() {
    var self = this;
    self.selectedTemplate = ko.observable();

    // Non-editable data - would come from the server
    self.availableTemplates = [{
        Name: "Range Validation",
        Code: "var minValue = 'A';\r\nvar maxValue = 'Z';\r\n\r\nreturn (e.value >= minValue && e.value <= maxValue) \r\n   ? true \r\n   : 'this is all wrong!';"
    }, {
        Name: "DateTime",
        Code: "var newDate = new Date(e.value);\r\n\r\nif (newDate != 'Invalid Date')\r\n   return true; \r\n\r\nreturn 'value is not a valid dateTime';"
    }, {
        Name: "Decimal",
        Code: "if (e.value == null || e.value.length == 0)\r\n   return 'please, type something'; \r\n\r\nreturn isFinite(e.value);"
    }];


}