【问题标题】:Templating engine that render only the model changes仅渲染模型更改的模板引擎
【发布时间】:2013-01-10 06:39:52
【问题描述】:

是否有任何模板 js 库可以仅渲染模型中的更改而不是整个模型。 例如:如果模型是数据类型的数组 [{ 名称:'1' 地址2' }, { 名称:'3' 地址:'4' }]

最初框架会将数据呈现为 html 视图。 当我更改模型(在数组中添加新元素)时,我只想渲染更改(新元素)而不是重新渲染整个模型。

我尝试过 KnockoutJS,但是当模型更改时,整个视图会重新渲染,而不是仅显示更改。

【问题讨论】:

  • AngularJS 在大多数情况下只会更新绑定到模型表达式变化的 DOM 节点,而其他 DOM 节点保持不变。它甚至可以确保在对集合等进行排序时重用 DOM 节点(使用 ng-repeat 指令呈现的集合)。显然 AngularJS 不仅仅是一个模板引擎!
  • 那你KO搞错了
  • 我同意安德斯的观点。 Knockout 仅呈现更改,您一定做错了什么。显示你的代码并添加一个 jsfidde 来演示。

标签: knockout.js angularjs template-engine jquery-templates


【解决方案1】:

如果您将对象引用更改为新的,With 绑定和 Template 绑定将重新呈现整个内容。相反,您应该只更改已更改的可观察对象的状态。

我的猜测是您处于 CRUD 场景中并从后端接收到一个全新的模型?如果是这种情况,并且您不想使用映射插件重新渲染整个视图,它将更新旧对象上的可观察对象,因此不会重新渲染整个视图。

I clarified my answer with a fiddle

http://jsfiddle.net/G4ZME/1/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-09
    • 2017-09-08
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 2016-08-23
    • 1970-01-01
    相关资源
    最近更新 更多