Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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 knockoutjs、自定义绑定和knockoutjs模板(从自定义绑定init方法调用knockoutjs模板)_Knockout.js - Fatal编程技术网

Knockout.js knockoutjs、自定义绑定和knockoutjs模板(从自定义绑定init方法调用knockoutjs模板)

Knockout.js knockoutjs、自定义绑定和knockoutjs模板(从自定义绑定init方法调用knockoutjs模板),knockout.js,Knockout.js,我想将第三方控件挂接到knockoutjs中,并使用自定义绑定将它们连接在一起。到目前为止,它运行良好。但是,我想选择模板的控件很少 渲染控件。但是找不到任何方法通过javascript调用敲除js模板 这是可能的 //在单独的文件中获得以下模板 学分: //我的自定义绑定处理程序位于单独的文件中 ko.bindingHandlers.knockoutjs-text={ init:function(元素、valueAccessor、allBindingsAccessor、viewModel、

我想将第三方控件挂接到knockoutjs中,并使用自定义绑定将它们连接在一起。到目前为止,它运行良好。但是,我想选择模板的控件很少 渲染控件。但是找不到任何方法通过javascript调用敲除js模板

这是可能的



//在单独的文件中获得以下模板
学分:

//我的自定义绑定处理程序位于单独的文件中 ko.bindingHandlers.knockoutjs-text={ init:function(元素、valueAccessor、allBindingsAccessor、viewModel、bindingContext){ //现在它想从这里调用person模板并将其附加到元素 }
})

这是我的案例的简单例子,我的案例是创建用户控件,b将这两者结合在一起。 如果你认为这个例子还不够,请让我知道

谢谢,
Daljit Singh

是的,您可以使用动态模板:

HTML:

正在加载。。。
下载模板后更新脚本标记:

self.Content = ko.observable("<b>Hello World</b>");
self.TemplateID = ko.observable("LoadingTemplate");
self.UniquePageID = ko.observable(GenerateUUID());  // create a random id

ko.computed(function () {
    var html = self.Content(),
        uniqueID = ko.utils.unwrapObservable(self.UniquePageID),
        templateID = "template_" + uniqueID;

    // remove the current template
    $("#" + templateID).remove();

    // append the html template
    $("body").append('<script type="text/html" id="' + templateID + '">' + html + '</script>');

    // update the template ID (this will trigger the knockoutjs data-bindings)
    self.TemplateID(templateID);

}).extend({ throttle: 100 });
self.Content=ko.observable(“你好世界”);
self.TemplateID=ko.observable(“LoadingTemplate”);
self.UniquePageID=ko.observable(generateUID());//创建一个随机id
ko.computed(函数(){
var html=self.Content(),
uniqueID=ko.utils.unwrapobbservable(self.UniquePageID),
templateID=“template_216;”+唯一标识;
//删除当前模板
$(“#”+templateID).remove();
//附加html模板
$(“正文”)。附加(“”+html+“”);
//更新模板ID(这将触发knockoutjs数据绑定)
TemplateID(TemplateID);
}).extend({throttle:100});

有关更多信息,请参阅knockmeout.net上的。是的,您可以使用动态模板:

HTML:

正在加载。。。
下载模板后更新脚本标记:

self.Content = ko.observable("<b>Hello World</b>");
self.TemplateID = ko.observable("LoadingTemplate");
self.UniquePageID = ko.observable(GenerateUUID());  // create a random id

ko.computed(function () {
    var html = self.Content(),
        uniqueID = ko.utils.unwrapObservable(self.UniquePageID),
        templateID = "template_" + uniqueID;

    // remove the current template
    $("#" + templateID).remove();

    // append the html template
    $("body").append('<script type="text/html" id="' + templateID + '">' + html + '</script>');

    // update the template ID (this will trigger the knockoutjs data-bindings)
    self.TemplateID(templateID);

}).extend({ throttle: 100 });
self.Content=ko.observable(“你好世界”);
self.TemplateID=ko.observable(“LoadingTemplate”);
self.UniquePageID=ko.observable(generateUID());//创建一个随机id
ko.computed(函数(){
var html=self.Content(),
uniqueID=ko.utils.unwrapobbservable(self.UniquePageID),
templateID=“template_216;”+唯一标识;
//删除当前模板
$(“#”+templateID).remove();
//附加html模板
$(“正文”)。附加(“”+html+“”);
//更新模板ID(这将触发knockoutjs数据绑定)
TemplateID(TemplateID);
}).extend({throttle:100});

有关更多信息,请参阅knockmeout.net上的。

问题提出后可能需要一段时间。我刚把它修好,车把也很好用

我必须为新的Typeahead.js编写一个自定义绑定,然后要求我在下拉列表中显示更多数据

我跟着滚动向下一点。这在Knockoutjs中工作得很好

这是正在讨论的代码,它不是专门针对knockoutjs的,但我将其用于我的模板:suggestion entry

$('.example-twitter-oss .typeahead').typeahead(null, {
  name: 'twitter-oss',
  displayKey: 'name',
  source: repos.ttAdapter(),
  templates: {
    suggestion: Handlebars.compile([
      '<p class="repo-language">{{language}}</p>',
      '<p class="repo-name">{{name}}</p>',
      '<p class="repo-description">{{description}}</p>'
    ].join(''))
  }
});
$('.example twitter oss.typeahead').typeahead(null{
名称:'twitter-oss',
displayKey:'名称',
来源:repos.ttAdapter(),
模板:{
建议:车把([
“

{{language}

”, “

{{name}

”, “

{{description}

” ].加入(“”) } });
请注意,Handlebar不是大写字母“B”拼写的,因为它使用编译函数,所以您必须使用更大的handlebar.js库(当前为“handlebar-v1.3.0.js”),而不是运行时库


我担心需要一个88kb的库来完成这项工作,但我确实喜欢车把臂的切割。

问题提出后可能需要一段时间。我刚把它修好,车把也很好用

我必须为新的Typeahead.js编写一个自定义绑定,然后要求我在下拉列表中显示更多数据

我跟着滚动向下一点。这在Knockoutjs中工作得很好

这是正在讨论的代码,它不是专门针对knockoutjs的,但我将其用于我的模板:suggestion entry

$('.example-twitter-oss .typeahead').typeahead(null, {
  name: 'twitter-oss',
  displayKey: 'name',
  source: repos.ttAdapter(),
  templates: {
    suggestion: Handlebars.compile([
      '<p class="repo-language">{{language}}</p>',
      '<p class="repo-name">{{name}}</p>',
      '<p class="repo-description">{{description}}</p>'
    ].join(''))
  }
});
$('.example twitter oss.typeahead').typeahead(null{
名称:'twitter-oss',
displayKey:'名称',
来源:repos.ttAdapter(),
模板:{
建议:车把([
“

{{language}

”, “

{{name}

”, “

{{description}

” ].加入(“”) } });
请注意,Handlebar不是大写字母“B”拼写的,因为它使用编译函数,所以您必须使用更大的handlebar.js库(当前为“handlebar-v1.3.0.js”),而不是运行时库


我担心需要一个88kb的库来完成这项工作,但我确实喜欢车把三角架的切割。

你能给我们展示一些你正在尝试做的示例代码吗?我现在正好遇到了这个问题。你是怎么处理这件事的,好吧,那是18个月前的事了,但我只是想谈谈这个问题。我试着用Handlebarjs来做这件事,但是要么它不起作用,要么我做错了什么。尽管下面的例子看起来可行,但感觉不对劲;虽然工作代码胜过坏代码。嗨,zeristor,这是一个人事项目,但我从来没有尝试过任何东西并编写过代码,我不确定这是否有帮助,但knockoutjs中有ko.rendertemplate方法,如果不让我知道的话。谢谢你给我们看一些你正在尝试做的示例代码?我现在正好遇到了这个问题。你是怎么处理这件事的,好吧,那是18个月前的事了,但我只是想谈谈这个问题。我试着用Handlebarjs来做这件事,但是要么它不起作用,要么我做错了什么。尽管下面的例子看起来可行,但感觉不对劲;虽然工作代码比坏代码好。嗨,zeristor,这是一个人事项目,但我从来没有真正尝试过任何东西和编写