【发布时间】:2015-11-25 03:28:53
【问题描述】:
因为我正在处理的页面是一个遗留页面,其中包含大量死/活/僵尸代码,所以我无法将其全部粘贴到此处。所以我试图用示例代码发布我的问题的摘要。
我有一个页面,其中的数据来自 Angular。这是一堆产品。每个产品都有一个名为showProduct 的属性,用于确定是否应该显示它。 showProduct 属性在首次从后端获取时设置为 1。在渲染 html 时,在我拥有的每个产品 div 中
ng-show={{product.showProduct}}。 ng-show 第一次加载时工作正常,所有产品都会显示。如果从后端我为任何产品将其设置为 0,它就会被隐藏。
加载产品后,如果用户单击按钮,我需要隐藏其中一些产品。此按钮单击处理程序在 jQuery 中。
所以我做了以下事情:
prod = angular.element($('#product-section')).scope().ProductList;
prod 现在是一系列产品及其属性。现在我遍历这个数组,检查有问题的属性(我根据点击的按钮知道)并根据每个产品的值,我将showProduct 属性设置为0。
但是,这不会更新视图以隐藏该产品。如果我console.logangular.element($('#product-section')).scope().ProductList,我可以看到它的 showProduct 已经正确地从 1 更新到 0。
我假设我需要做一些事情才能使 productList 被“重新解析”并在页面中刷新。但是我不确定如何做到这一点。
我只需要一些关于我可能遗漏的概念性提示,因为我知道为我的情况提供“特定”代码提示很困难。
简而言之,一旦我在外部更新了角度值,我如何告诉 Angular 重新解析代码并刷新视图?类似于在文本框中更新数据时模型自动发生的情况......
我尝试过angular.element($('#product-section')).scope().$apply();,但没有成功。
非常感谢任何指针。
【问题讨论】:
标签: javascript jquery html angularjs