gpt4 book ai didi

javascript - polymer 刷新通过方法计算的属性值

转载 作者:数据小太阳 更新时间:2023-10-29 04:15:43 25 4
gpt4 key购买 nike

我们目前正在开发一个项目,在该项目中我们结合使用了 AngularJS 和 Polymer。

我们有一些结构,但真正重要的是这段代码:

<template is="dom-bind" angupoly="{dataContainer:'dataContainer'}">
<menu-list for="places" data="{{dataContainer.getSomeData()}}">
</template>

我们在 $scope 上定义了一个名为 dataContainer 的变量,该变量在 Controller 中设置。问题是这段代码是在 Controller 准备那个属性之前执行的,所以它是未定义的——它抛出:

[dom-bind::_annotatedComputationEffect]: compute method dataContainer.getSomeData() not defined

并且数据永远不会再次刷新并且它不起作用。相反,对于它起作用的属性(它的第一个状态是否未定义并不重要),它会被刷新。

因为这是我们申请中非常重要的一点,所以我们想问一下。如何达到要求的行为?

谢谢,祝你有美好的一天! :)

最佳答案

我不熟悉 polymer ,如果有可能延迟 polymer 代码的执行,或者如果有摘要循环,可以像在 AngularJS 中一样使用。

但我猜你可以用一个简单的 ng-if= 来避免这种竞争条件。连同<ng-include>在 AngularJS 方面 - 因为它不会将元素添加到 DOM,因此在包含它之前避免与 polymer 进行任何类型的交互。

例如:

<figure ng-if="dataContainer.getSomeData">
<ng-include src="'template.html'">
</figure>

在 template.html 中你的(未修改的)代码:

<template is="dom-bind" angupoly="{dataContainer:'dataContainer'}">
<menu-list for="places" data="{{dataContainer.getSomeData()}}">
</template>

如果这对您有帮助,我会很高兴 - 但正如我所说,这只是一个猜测,我对 polymer 及其与 DOM 的交互方式知之甚少。

关于javascript - polymer 刷新通过方法计算的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32875619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com