Knockout-ES5无法正常工作

时间:2015-02-13 16:04:09

标签: javascript asp.net knockout.js

我正在尝试在我的项目中使用Knockout-ES5和Knockout。但它似乎根本不起作用。这是一个非常简单的样本,取自官方的Knockout教程。这是我的标记代码

    <p>First name: <input data-bind="text: firstName" /></p>
    <p>Last name: <input data-bind="text: lastName" /></p>

这是我的js文件

    $(function () {

        var obj = {
           firstName: 'Bert',
           lastName: 'Bertington'
        }

        ko.track(obj);

        obj.firstName.subscribe(function(v){
           alert(v);
        });    
   });

obj.firstName.subscribe(function)行崩溃,异常

“对象不支持属性或方法'订阅'(IE10)。我似乎无法理解为什么会出现此错误。以下是使用的js文件:

<script src="scripts/jquery-2.1.1.js"></script>    
<script src="scripts/knockout-2.debug.js"></script>
<script src="scripts/weakmap.js"></script>
<script src="scripts/knockout-es5.js"></script>

我尝试了各种组合:例如

ko.track(obj);
ko.applyBindings(obj);

但仍然没有。任何对正确方向的建议都将非常感激。谢谢你/

1 个答案:

答案 0 :(得分:1)

我没有使用过ko es5,但快速查看了他们的文档。

看起来你需要使用一种方法来掌握底层的observable:

  

访问observables

     

如果要访问底层证券   ko.observable为给定的属性,例如,以便您可以订阅   在更改时收到通知,请使用ko.getObservable:

  ko.getObservable(someModel, 'email').subscribe(function(newValue) {
  console.log('The new email address is ' + newValue); });

http://blog.stevensanderson.com/2013/05/20/knockout-es5-a-plugin-to-simplify-your-syntax/