javascript

java

python

c#

node.js

android

reactjs

c++

php

jquery

html

css

git

ruby-on-rails

.net

ios

sql

c

string

ruby

基因敲除-基因敲除-带有加载时触发的参数的绑定

最近我一直在做很多淘汰赛,并且遇到了一种奇怪的情况。

如您在此小提琴中所见[http://jsfiddle.net/hqXjv/],当您设置到click: testMethod的绑定时,单击该按钮时动作就会触发。

如您在此小提琴中所见[http://jsfiddle.net/kxTzM/],当您将绑定设置为click: testMethod()时,该动作在单击按钮和页面加载时均会触发(我猜是applyBindings)

重现此问题不需要参数,如果在第一个小提琴中将绑定更改为click: testMethod(),则会看到它是在页面加载时触发的。

虽然可以,但是我可以向该元素添加另一个属性,并尝试将其用作参数,但我的问题是,有没有一种方法可以将参数传递给基因敲除绑定而不触发加载。 如果这是一个错误,那就这样吧,但是我只想知道一种避免它的方法。

trans by 2019-10-12T20:21:18Z

javascript-如何从可观察的.computed()内部使用敲除的$ parent / $ root伪变量?

在基因敲除.js绑定表达式中,可以使用2562075775528828862720、$parent$root伪变量。 当我使用JavaScript中声明的$data observable时,如何获得这些伪变量的等价物?

我有一个带有子级集合的父视图模型,并且该父视图模型具有可观察到的$data。 鉴于此,我可以使用数据绑定表达式将CSS类添加到当前选择的任何子级:

<ul data-bind="foreach: children">
    <li data-bind="text: name,
                   css: {selected: $data === $root.selectedChild()},
                   click: $root.selectChild"></li>
</ul>
<script>
vm = {
    selectedChild: ko.observable(),
    children: [{name: 'Bob'}, {name: 'Ned'}],
    selectChild: function(child) { vm.selectedChild(child); }
};
ko.applyBindings(vm);
</script>

但是我的视图模型将变得更加复杂,我想“我被选中了吗?” 不仅可以将单个CSS类添加到单个元素中,还可以做更多的事情。 我真的很想在子viewmodel上创建$data计算属性,因此可以添加依赖于它的其他计算属性。

我试过只编写引用$data$root的JavaScript,但有一次机会,敲除可能会定义这些变量,并在调用我的contextFor评估程序函数时使它们处于范围内:

{
  name: 'Bob',
  isSelected: ko.computed(function(){ return $data === $root.selectedChild(); })
}

但是没有这样的运气:在我的评估器$data中,$rootcontextFor都是undefined

我还尝试在评估器中使用$data,因为它确实可以访问$data$root。不幸的是,在评估器函数中,contextFor也始终返回undefined。 尚不清楚如果我必须像这样落后,淘汰赛能够很好地跟踪依赖项。)

我总是可以在每个引用到父视图模型的子视图模型上手动设置属性。 但是我知道淘汰赛有能力为我做到这一点,并且我至少想在写自己的文章之前探索一下是否可以使用它的机制。

似乎应该可以将上述绑定表达式转换为可计算的可观察值了-毕竟,这就是敲除的作用:

另一个巧妙的技巧是声明式绑定仅作为计算的可观察对象实现。

但是,当我编写自己的可计算观察值时,如何处理$data$root伪变量?

trans by 2019-10-09T19:29:48Z

kickout.js-绑定到简单的字符串数组

如果我想将模板绑定到简单的旧字符串数组,我应该在$ {??}表达式中放什么?

我希望这段代码不要太短,以免引起混淆:

<ul data-bind="template: { name: 'authorTemplate', foreach: authors }">
</ul>

作者简直是val

<script type="text/x-jquery-tmpl" id="authorTemplate">
    <li>${what_do_I_put_here???}</li>
</script>

我已经尝试过:val value thisthis.toString()。最后两个显示了[object Object],所以我怀疑我已经很近了。

trans by 2019-10-01T16:06:41Z

javascript-如何使用Knockout.js在特定位置将项目添加/插入ObservableArray中

我发现的所有敲除示例似乎都使用类似以下方法在ObservableArray的末尾添加了一个新项目:

viewModel.SomeItems.push(someNewItem);

当然,这会将项目放置在数组的末尾。

如何在某个位置将项目添加到ObservableArray?

例如。 就像是:

viewModel.SomeItems.push(someNewItem, indexToInsertItAt);
trans by 2019-09-24T19:49:15Z

javascript-订阅可观察数组仅用于新条目或已删除条目

所以是的,我可以订阅一个可观察的数组:

vm.myArray = ko.observableArray();
vm.myArray.subscribe(function(newVal){...});

问题是newVal传递给函数是整个数组。 无论如何,我只能得到增量部分吗? 说添加或删除的元素?

trans by 2019-09-24T12:25:56Z

knockout.js - 在同一个observab的订阅中获取一个observable的先前值

在获得新值之前,是否可以在knockout中获取可观察的可观察量的当前值?

例:

this.myObservable = ko.observable();
this.myObservable.subscribe(function(newValue){
    //I'd like to get the previous value of 'myObservable' here before it's set to newValue
});
trans by 2019-09-17T23:49:11Z

javascript - 将真/假绑定到Knockout J中的单选按钮

在我的视图模型中,我有一个IsMale值,其值为true或false。

在我的UI中,我希望将其绑定到以下单选按钮:

<label>Male
   <input type="radio" name="IsMale" value="true" data-bind="checked:IsMale"/>
</label> 
<label>Female
   <input type="radio" name="IsMale" value="false" data-bind="checked:IsMale"/>
</label>

我认为的问题是checked需要一个字符串“true”/“false”。 所以我的问题是,如何通过这个UI和模型获得这种双向绑定?

trans by 2019-09-16T02:58:09Z

mvvm - 如何使用jquery-mobile和knockoutjs构建webapp

我想构建一个移动应用程序,除了html / css和JavaScript之外别无其他。 虽然我对如何使用JavaScript构建Web应用程序有很好的了解,但我想我可能会看一下像jquery-mobile这样的框架。

起初,我认为jquery-mobile仅仅是针对移动浏览器的小部件框架。 与jquery-ui非常相似,但对于移动世界而言。 但我注意到jquery-mobile不止于此。 它带有一堆架构,让您使用声明性的html语法创建应用程序。 因此,对于最容易思考的应用程序,您不需要自己编写一行JavaScript(这很酷,因为我们都喜欢少工作,不是吗?)

为了支持使用声明性html语法创建应用程序的方法,我认为将jquery-mobile与knockoutjs结合起来是一个很好的选择。 Knockoutjs是一个客户端MVVM框架,旨在将WPVM / Silverlight中的MVVM超级功能引入JavaScript世界。

对我来说MVVM是一个新世界。 虽然我已经阅读了很多关于它的内容,但我以前从未真正使用它。

所以这篇文章是关于如何使用jquery-mobile和knockoutjs一起构建应用程序。 我的想法是写下我看了几个小时后想出来的方法,并有一些jquery-mobile / knockout yoda来评论它,告诉我为什么它糟透了,为什么我不应该编程 第一名;-)

HTML

jquery-mobile在提供页面的基本结构模型方面做得很好。 虽然我很清楚我之后可以通过ajax加载我的页面,但我决定将它们全部保存在一个index.html文件中。 在这个基本场景中,我们讨论的是两个页面,因此不应该太难以掌握一切。

<!DOCTYPE html> 
<html> 
  <head> 
  <title>Page Title</title> 
  <link rel="stylesheet" href="libs/jquery-mobile/jquery.mobile-1.0a4.1.css" />
  <link rel="stylesheet" href="app/base/css/base.css" />
  <script src="libs/jquery/jquery-1.5.0.min.js"></script>
  <script src="libs/knockout/knockout-1.2.0.js"></script>
  <script src="libs/knockout/knockout-bindings-jqm.js" type="text/javascript"></script>
  <script src="libs/rx/rx.js" type="text/javascript"></script>
  <script src="app/App.js"></script>
  <script src="app/App.ViewModels.HomeScreenViewModel.js"></script>
  <script src="app/App.MockedStatisticsService.js"></script>
  <script src="libs/jquery-mobile/jquery.mobile-1.0a4.1.js"></script>  
</head> 
<body> 

<!-- Start of first page -->
<div data-role="page" id="home">

    <div data-role="header">
        <h1>Demo App</h1>
    </div><!-- /header -->

    <div data-role="content">   

    <div class="ui-grid-a">
        <div class="ui-block-a">
            <div class="ui-bar" style="height:120px">
                <h1>Tours today (please wait 10 seconds to see the effect)</h1>
                <p><span data-bind="text: toursTotal"></span> total</p>
                <p><span data-bind="text: toursRunning"></span> running</p>
                <p><span data-bind="text: toursCompleted"></span> completed</p>     
            </div>
        </div>
    </div>

    <fieldset class="ui-grid-a">
        <div class="ui-block-a"><button data-bind="click: showTourList, jqmButtonEnabled: toursAvailable" data-theme="a">Tour List</button></div>  
    </fieldset>

    </div><!-- /content -->

    <div data-role="footer" data-position="fixed">
        <h4>by Christoph Burgdorf</h4>
    </div><!-- /header -->
</div><!-- /page -->

<!-- tourlist page -->
<div data-role="page" id="tourlist">

    <div data-role="header">
        <h1>Bar</h1>
    </div><!-- /header -->

    <div data-role="content">   
        <p><a href="#home">Back to home</a></p> 
    </div><!-- /content -->

    <div data-role="footer" data-position="fixed">
        <h4>by Christoph Burgdorf</h4>
    </div><!-- /header -->
</div><!-- /page -->

</body>
</html>

JavaScript

让我们来看看有趣的部分 - JavaScript吧!

当我开始考虑分层应用程序时,我已经考虑了几个方面(例如可测试性,松散耦合)。 我将向您展示我是如何决定拆分我的文件并评论一些事情,比如我为什么选择一件事而不是另一件事...

App.js

var App = window.App = {};
App.ViewModels = {};

$(document).bind('mobileinit', function(){
    // while app is running use App.Service.mockStatistic({ToursCompleted: 45}); to fake backend data from the console
    var service = App.Service = new App.MockedStatisticService();    

  $('#home').live('pagecreate', function(event, ui){
        var viewModel = new App.ViewModels.HomeScreenViewModel(service);
        ko.applyBindings(viewModel, this);
        viewModel.startServicePolling();
  });
});

App.js是我的应用程序的入口点。 它创建App对象并为视图模型提供命名空间(即将到来)。 它监听jquery-mobile提供的mobileinit事件。

正如您所看到的,我正在创建某种ajax服务的实例(我们稍后会讨论)并将其保存到变量&#34; service&#34;。

我还连接了主页的pagecreate事件,我在其中创建了一个获取传入服务实例的viewModel实例。这一点对我来说至关重要。 如果有人认为,这应该采用不同的方式,请分享您的想法!

关键是,视图模型需要在服务上运行(GetTour /,SaveTour等)。 但我不希望ViewModel对此有所了解。 例如,在我们的例子中,我只是传递了一个模拟的ajax服务,因为后端还没有开发出来。

我应该提到的另一件事是ViewModel对实际视图没有任何了解。 这就是我在pagecreate处理程序中调用ko.applyBindings(viewModel,this)的原因。 我想保持视图模型与实际视图分离,以便更容易测试它。

App.ViewModels.HomeScreenViewModel.js

(function(App){
  App.ViewModels.HomeScreenViewModel = function(service){
    var self = {}, disposableServicePoller = Rx.Disposable.Empty;

    self.toursTotal = ko.observable(0);
    self.toursRunning = ko.observable(0);
    self.toursCompleted = ko.observable(0);
    self.toursAvailable = ko.dependentObservable(function(){ return this.toursTotal() > 0; }, self);
    self.showTourList = function(){ $.mobile.changePage('#tourlist', 'pop', false, true); };        
    self.startServicePolling = function(){  
        disposableServicePoller = Rx.Observable
            .Interval(10000)
            .Select(service.getStatistics)
            .Switch()
            .Subscribe(function(statistics){
                self.toursTotal(statistics.ToursTotal);
                self.toursRunning(statistics.ToursRunning); 
                self.toursCompleted(statistics.ToursCompleted); 
            });
    };
    self.stopServicePolling = disposableServicePoller.Dispose;      

    return self; 
  };
})(App)

虽然你会发现大多数knockoutjs使用对象文字语法查看模型示例,但我使用传统的函数语法和自我&#39; 辅助对象。 基本上,这是一个品味问题。 但是当你想要一个可观察的属性来引用另一个属性时,你不能一次性写下对象文字,这使得它不那么对称。 这是我选择不同语法的原因之一。

下一个原因是我可以作为参数传递的服务,如前所述。

这个视图模型还有一件事,我不确定我是否选择了正确的方法。 我想定期轮询ajax服务以从服务器获取结果。 所以,我选择实现startServicePolling / stopServicePolling方法来实现。 我们的想法是在pageshow上开始轮询,并在用户导航到不同页面时停止它。

您可以忽略用于轮询服务的语法。 这是RxJS的魔力。 请确保我正在轮询它并使用返回的结果更新可观察属性,如您在Subscribe(function(statistics){..})部分中所见。

App.MockedStatisticsService.js

好的,还有一件事要告诉你。 它是实际的服务实现。 我在这里不太详细。 它只是一个模拟,在调用getStatistics时会返回一些数字。 还有另一种方法mockStatistics,我用它在应用程序运行时通过浏览器js控制台设置新值。

(function(App){
    App.MockedStatisticService = function(){
        var self = {},
        defaultStatistic = {
            ToursTotal: 505,
            ToursRunning: 110,
            ToursCompleted: 115 
        },
        currentStatistic = $.extend({}, defaultStatistic);;

        self.mockStatistic = function(statistics){
            currentStatistic = $.extend({}, defaultStatistic, statistics);
        };

        self.getStatistics = function(){        
            var asyncSubject = new Rx.AsyncSubject();
            asyncSubject.OnNext(currentStatistic);
            asyncSubject.OnCompleted();
            return asyncSubject.AsObservable();
        };

        return self;
    };
})(App)

好吧,我写的更多,就像我最初计划写的那样。 我的手指受伤,我的狗要我带他们散步,我感到筋疲力尽。 我确定这里缺少很多东西,并且我犯了一堆拼写错误和语法错误。 如果有什么事情不清楚,我会对我大喊大叫,我会稍后更新帖子。

张贴可能不是一个问题,但实际上它是! 我希望您能分享您对我的方法的看法,如果您认为它的好坏,或者我错过了什么。

UPDATE

由于这篇文章的主要受欢迎程度,并且有几个人要求我这样做,我已将此示例的代码放在github上:

[https://github.com/cburgdorf/stackoverflow-knockout-example]

在它热的时候得到它!

trans by 2019-08-27T23:29:18Z

javascript - 如何模拟数据绑定视图中的If-Else结构?

我总是发现自己在基于KO的HTML模板中使用这个习惯用法:

<!-- ko if: isEdit -->
<td><input type="text" name="email" data-bind="value: email" /></td>
<!-- /ko -->
<!-- ko ifnot: isEdit -->
<td data-bind="text: email"></td>
<!-- /ko -->

是否有一种更好/更清洁的方法来在KO中进行条件化,还是有一种更好的方法而不仅仅是使用传统的if-else结构?

另外,我想指出一些版本的Internet Explorer(IE 8/9)没有正确解析上面的例子。 有关更多信息,请参阅此SO问题。 快速摘要是,不要在表标记内使用注释(虚拟绑定)来支持IE。 改为使用tbody

<tbody data-bind="if: display"><tr><td>hello</td></tr></tbody>
trans by 2019-08-23T07:26:10Z

javascript - 确定对象属性是否为ko.observable

我使用的是KnockoutJS 2.0.0版

如果我循环遍历对象的所有属性,我如何测试每个属性是否为ko.observable? 这是我迄今为止所尝试的内容:

    var vm = {
        prop: ko.observable(''),
        arr: ko.observableArray([]),
        func: ko.computed(function(){
            return this.prop + " computed";
        }, vm)
    };

    for (var key in vm) {
        console.log(key, 
            vm[key].constructor === ko.observable, 
            vm[key] instanceof ko.observable);
    }

但到目前为止一切都是假的。

trans by 2019-08-19T13:31:29Z

javascript - 如何在一个元素上拥有多个数据绑定属性?

我需要在一个元素上有多个数据绑定。 例如,我想在一个html标签上使用data-bind以及href数据绑定。 我试过这个,

<a data-bind="html: name" 
   data-bind="attr: { href: url }" 
   data-bind="attr: { 'data-prop': xyz }">
</a>

但这并不奏效。 看来淘汰赛只支持绑定一个data-bind属性? 如何绑定href,内部html和自定义&#34; data-prop&#34; 属性在一个元素上?

trans by 2019-08-12T01:15:48Z

knockout.js - 如何有条件地推送一个可观察数组中的项目?

我想remove remove新项目到observableArray,但仅限该项目尚未存在。 在KnockoutJS中是否有任何“查找”功能或推荐的模式来实现这一目标?

我注意到observableArray上的remove函数可以接收传入条件的函数。 我几乎想要相同的功能,但是如果传入的条件是或者不是真的那么只推送它。

trans by 2019-07-27T15:39:44Z

javascript - 在调用ko.applyBindings时获取“无法读取属性'nodeType'的null”

我有这个淘汰代码:

function Task(data) {
    this.title = ko.observable(data.title);
    this.isDone = ko.observable(data.isDone);
}

function TaskListViewModel() {
    // Data
    var self = this;
    self.tasks = ko.observableArray([]);
    self.newTaskText = ko.observable();
    self.incompleteTasks = ko.computed(function() {
        return ko.utils.arrayFilter(self.tasks(), function(task) { return !task.isDone() });
    });

    // Operations
    self.addTask = function() {
        self.tasks.push(new Task({ title: this.newTaskText() }));
        self.newTaskText("");
    };
    self.removeTask = function(task) { self.tasks.remove(task) };
}

ko.applyBindings(new TaskListViewModel());

这个html:

<head>
    <script type="text/javascript" src="jquery-1.7.1.min.js"></script>
    <script type="text/javascript" src="knockout-2.0.0.js"></script>
    <script type="text/javascript" src="script.js"></script>
</head>
<body>
    <h3>Tasks</h3>

    <form data-bind="submit: addTask">
        Add task: <input data-bind="value: newTaskText" placeholder="What needs to be done?" />
        <button type="submit">Add</button>
    </form>

    <ul data-bind="foreach: tasks, visible: tasks().length > 0">
        <li>
            <input type="checkbox" data-bind="checked: isDone" />
            <input data-bind="value: title, disable: isDone" />
            <a href="#" data-bind="click: $parent.removeTask">Delete</a>
        </li> 
    </ul>

    You have <b data-bind="text: incompleteTasks().length">&nbsp;</b> incomplete task(s)
    <span data-bind="visible: incompleteTasks().length == 0"> - it's beer time!</span>
</body>

该示例与Knockout网站上的示例相同,但是当我运行它时,它会在Chrome Fire Bug上返回此消息:

未捕获的TypeError:无法读取属性&#39; nodeType&#39; 为null

这个与淘汰文件和我的脚本的这一行有关:

ko.applyBindings(new TaskListViewModel());

这个错误指向淘汰赛的这一行(1766):

var isElement = (nodeVerified.nodeType == 1);

我究竟做错了什么?

trans by 2019-07-23T22:35:53Z

javascript - 何时使用ko.utils.unwrapObservable?

我使用KnockoutJS编写了一些自定义绑定。 我仍然不确定何时使用()查看代码,该调用基本上检查ko.utils.unwrapObservable是否是可观察的。 如果是,则返回值(),如果不是,则返回值。 查看Knockout关于创建自定义绑定的部分,它们具有以下语法:

var value = valueAccessor(), allBindings = allBindingsAccessor();
var valueUnwrapped = ko.utils.unwrapObservable(value);

在这种情况下,他们通过()调用observable,然后调用ko.utils.unwrapObservable.我只是试图了解何时使用一个与另一个或如果我应该始终遵循上述模式并使用两者。

trans by 2019-07-12T05:11:18Z

使用Knockoutjs的twitter bootstrap自动完成下拉列表/组合框

我有一个要求,我必须使用bootstrap自动完成下拉列表,但用户可以在该下拉列表中有自由格式文本,如果他们愿意。 在考虑TypeAhead之前,我可以使用Bootstrap TypeAhead文本框,但我需要有下拉列表,因为我们想要提供一些默认值作为headstart选项,以防用户不知道要搜索什么。

我在MVC DropDownListFor中使用它,因为它为我们创建了一个选择控件。

我发现这篇文章对我有用。

[https://github.com/danielfarrell/bootstrap-combobox/pull/20]

我所要做的就是从选择控件中取出名称,控件让我输入自由格式文本。 到目前为止都很好。

现在,我和Knockoutjs一起使用它。 我将我的选项和选定值绑定到选择控件然后在我的模板渲染的行上,我调用(选择器).combobox(),它使select控件成为一个引导comobobox并添加一个输入控件并隐藏场景中的select控件 背后。

现在的问题是当我试图让他的值发布到服务器时,因为我输入框中的值不是我给选择控件的选项中的有效选项,所以默认情况下始终将其设置为第一个选项。 这是因为,我在select控件上设置了所选值的绑定,而不是在bootstrap-combobox.js创建的输入框上。

我的问题是如何让输入框数据绑定到与select控件绑定的相同的属性。

还有其他选择吗?如果您需要更多说明或有疑问,请与我们联系。请建议。

谢谢。

trans by 2019-07-12T02:13:09Z

javascript - 如何在Knockout.js中清除/删除可观察的绑定?

我将功能构建到用户可以多次执行的网页上。 通过用户的动作,使用ko.applyBindings()创建对象/模型并将其应用于HTML。

数据绑定HTML是通过jQuery模板创建的。

到现在为止还挺好。

当我通过创建第二个对象/模型并调用ko.applyBindings()重复此步骤时,我遇到两个问题:

  1. 标记显示前一个对象/模型以及新对象/模型。
  2. 发生与对象/模型中的某个属性相关的javascript错误,尽管它仍然在标记中呈现。

为了解决这个问题,在第一次传递之后,我调用jQuery的.empty()来删除包含所有数据绑定属性的模板化HTML,以便它不再在DOM中。 当用户启动第二遍的过程时,数据绑定的HTML将重新添加到DOM。

但就像我说的那样,当HTML被重新添加到DOM并重新绑定到新的对象/模型时,它仍然包含来自第一个对象/模型的数据,并且我仍然得到JS错误,它没有 t在第一次通过期间发生。

结论似乎是Knockout坚持这些绑定属性,即使从DOM中删除了标记。

所以我正在寻找的是从Knockout中删除这些绑定属性的方法; 告诉淘汰赛,不再有可观察的模型。 有没有办法做到这一点?

编辑

基本过程是用户上传文件; 服务器然后用JSON对象响应,数据绑定的HTML被添加到DOM,然后JSON对象模型绑定到这个HTML使用

mn.AccountCreationModel = new AccountViewModel(jsonData.Account);
ko.applyBindings(mn.AccountCreationModel);

一旦用户在模型上做了一些选择,就会将相同的对象发回服务器,从DOM中删除数据绑定的HTML,然后我有以下JS

mn.AccountCreationModel = null;

当用户希望再次执行此操作时,重复所有这些步骤。

我担心代码过于参与&#39; 做一个jsFiddle演示。

trans by 2019-07-03T21:52:37Z

jquery - Javascript相当于C#LINQ

在这里提出这个问题:

使用已敲除的已检查绑定和复选框列表检查所有复选框

我创建了一些使用knockout的复选框,允许从数组中进行选择。从上面的帖子取得的工作小提琴:

[http://jsfiddle.net/NsCXJ/]

有没有一种简单的方法可以创建一个只有水果ID的数组呢?

我在C#的家里更多,我会做一些selectedFruits.select(fruit=>fruit.id);

是否有一些方法/现成功能用于执行类似于javascript / jquery的操作? 或者最简单的选择是循环遍历列表并创建第二个数组?我打算用JSON将数组发回服务器,所以我试图最小化发送的数据。

trans by 2019-07-01T03:20:28Z

knockout.js - 使用包含前缀的knockoutjs设置id属性

我正在使用KnockoutJS迭代一个对象,如下所示:

现在这一切都有效。 但我遇到的问题是它将buttonid设置为一个数字。 所以它看起来像这样:

<button id="1">Button 1</button>
<button id="3">Button 2</button>
<button id="8">Button 3</button>

所以我试图在'Id'属性前加一个前缀,如下所示:

<div data-bind="foreach:Items">
    <button data-bind="text: Name, attr: {'id': 'myprefix_' + Id}"></button>
</div>

但这似乎并没有奏效。 当我这样做时,我的id充满了一些Knockout可观察功能......

所以我的问题是,当我指定字段的id属性时,如何添加前缀?

trans by 2019-06-21T21:17:31Z

knockout.js - KnockoutJs v2.3.0:错误您无法多次将绑定应用于同一元素

我刚刚升级到2.3.0,现在我收到错误'你不能多次将绑定应用到同一个元素。' 我没有进入2.2.1。

我从MVC控制器获得部分视图,并在点击href后将其添加到页面中。 第二次单击链接以获取局部视图时发生错误。 我这样做了很多次。

有没有办法清除这一点,并避免抛出新的错误?

这是我的代码:

$.get(url + "GetAssignedCompaniesView?layoutId=" + layoutId + "&noCache=" + new Date().getMilliseconds(), function (result) {
              $("#editAssignedPartial").html($(result));
              showEditAssignedArea(true);
              $(window.document).ready(function () {
                 // error is thrown here
                 ko.applyBindings(self, window.document.getElementById("editAssigned"));
                 $("#layoutId").attr("value", layoutId);
                 updateTypeHiddenElement.attr("value", "companies");
      });
    });
<div id="editAssignedPartial">
</div>

$(document).ready(function () {
  'use strict';
  var vm = new Vm();
  ko.applyBindings(vm, document.getElementById("area1"));
});
trans by 2019-06-19T23:17:29Z

javascript - 如何使用jsFiddle选择多个框架?

我如何让jsfiddle使用多个库? 我似乎只能使用jquery OR knockout但不能同时使用它们。 然而,当我看到其他人的小提琴他们似乎没有这个问题。 真烦人不知道为什么它如此困难,没有在互联网上搜索产生任何东西!

谢谢

trans by 2019-06-12T20:12:19Z

1 2 3 下一页 共3页