在devextreme中使用knockoutjs的纯计算函数的错误

时间:2015-04-01 11:51:16

标签: cordova visual-studio-2012 knockout.js

这是我的dxview: - 我在视觉工作室使用knockoutjs。

<div data-options="dxView : { name: 'home', title: 'Home' } " >
    <div class="home-view"  data-options="dxContent : { targetPlaceholder: 'content' } " >
        <p>First name: <input data-bind="value: firstName" /></p>
        <p>Last name: <input data-bind="value: lastName" /></p>
        <h2>Hello, <span data-bind="text: fullName"> </span>!</h2>
    </div>
</div>

这是我使用devextreme在Visual Studio中的javascript: -

MyFirstProject.home = function (params)
 {

   var viewModel = function (first, last) {
        this.firstName = ko.observable(first);
        this.lastName = ko.observable(last);
        this.fullName = ko.PureComputed(function ()
        {
            return this.firstName() + " " + this.lastName();

        },this);
   };
   ko.applyBindings(new viewModel("Planet", "Earth"));
    return viewModel;
};

这让我有一段时间我正在运行这个程序。 错误发生在knockoutjs的pureComputed函数上。 我无法理解为什么会出现如下错误: - 错误:'未捕获的TypeError:undefined不是函数',第6行,文件'http://localhost:51146/views/home.js'。

请告诉我这件事。 谢谢。

1 个答案:

答案 0 :(得分:0)

您可能已多次在视图中应用了绑定。您应该将viewmodel绑定到特定元素。试着这样做。

为div定义id属性。例如:

 <div id="one" data-options="dxView : { name: 'home', title: 'Home' } " >
 ko.applyBindings(viewModel, document.getElementById("one"));