Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Knockout.js Durandaljs和knockoutjs-数据绑定不起作用_Knockout.js_Durandal - Fatal编程技术网

Knockout.js Durandaljs和knockoutjs-数据绑定不起作用

Knockout.js Durandaljs和knockoutjs-数据绑定不起作用,knockout.js,durandal,Knockout.js,Durandal,我会尽量简明扼要。我使用的是DurandalJs,Hottower SPA模板。我添加了以下viewmodel define(['services/logger'], function (logger) { title = 'Content'; unpublishedContent = ko.observable('default'); activate = function() { logger.log(title + ' View Activated

我会尽量简明扼要。我使用的是DurandalJs,Hottower SPA模板。我添加了以下viewmodel

define(['services/logger'], function (logger) {
    title = 'Content';
    unpublishedContent = ko.observable('default');

    activate = function() {
        logger.log(title + ' View Activated', null, title, true);
        return true;
    }

    unpublishedContent.subscribe(function (newValue) {
        logger.log('New value is: ' + newValue);
    });
    return {
        activate: activate,
        title: title,
        unpublishedContent: unpublishedContent,
        save: function (data) {
            self = this;
            logger.log(' Content saved - ' + self.unpublishedContent(), null, title, true);
        }
    };
});
以及以下观点

<section>
    <div class="row">
        <div class="col-md-4">Left section</div>
        <div class="col-md-8">
            <form class="form-horizontal" role="form" data-bind="submit: save">
                <div class="form-group">
                    <label for="html" class="col-lg-3">Html</label>
                    <div class="col-lg-9">
                        <textarea class="form-control" data-bind="text: unpublishedContent"></textarea>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-lg-3">Your HTML</label>
                    <label class="col-lg-9" data-bind="text: unpublishedContent"></label>
                </div>
                <div class="form-group">
                    <div class="col-lg-offset-3 col-lg-9">
                        <button type="submit" class="btn btn-default">Save</button>
                    </div>
                </div>

            </form>
        </div>
    </div>
</section>

左侧部分
Html
你的HTML
拯救
这里需要注意的几点

  • 未发布内容
    属性a
    ko.可观察
  • 未发布内容
    绑定到文本区域和标签
  • save
    方法使用
    submit
    绑定绑定到表单
  • 当我的提交绑定工作时,
    unpublishedContent
    上的绑定不工作。我可能在某个地方犯了一个简单的错误,但我无法发现,可能需要另一双眼睛来观察它


    我已经在durandal中启用了调试功能,但是我没有从durandal的日志中获得太多的信息,因为它没有显示与ko和second相关的任何内容,我认为我对durandal来说太陌生了,无法理解它的调试消息

    您在
    上使用了错误的绑定(
    text
    )。您需要的是
    绑定

    从:

    绑定将关联的DOM元素的值与 属性在视图模型上。这通常对表单很有用 元素,如

    因此,请将您的观点改为:

    <textarea class="form-control" data-bind="value: unpublishedContent"></textarea>
    
    
    
    效果非常好。你知道我需要用什么来绑定
    标签吗。我有一个标签在我的html上面绑定到相同的属性。当我在textarea中键入时,我希望标签在textarea中拾取文本并显示它。对于标签,您仍然需要使用
    text
    绑定。但是如果您想要即时更新,则需要在
    绑定中使用
    valueUpdate:'afterkeydown'
    选项: