【发布时间】:2016-04-05 19:07:25
【问题描述】:
您好,我对 Angular 比较陌生,所以我不确定这是否是一个明显的答案,但我正在尝试通过 ng-repeat 将变量分配给 ng-bind-html。但是,当我通过 ng-repeat 添加变量时,angular 仅显示变量名称,因为它认为 html 内容来自我的 ng-repeat 数据,而不是 angular 的其他地方。
我的html:
<div class="brandInfo" ng-repeat="brand in itemPage.brandinfo" ng-click="widgetExpanded = !widgetExpanded">
<div class="icon-wrapper">
<img ng-src="assets/img/icons/{{brand.icon}}"/>
</div>
<p> {{brand.title}} </p>
<div ng-slide-down="widgetExpanded" duration=".5">
<p ng-bind-html="brand.iconClass"></p>
</div>
</div>
我的控制器:
vm.brandinfo = [
{icon: "organicCotton.svg", iconClass: "organicCotton", title: "Organic Cotton"},
{icon: "lowImpactDye.svg", iconClass: "lowImpactDye", title: "Low Impact Dyes"},
{icon: "factory.svg", iconClass: "factory", title: "Regulated Factory"},
{icon: "carbonFootprint.svg", iconClass: "carbonFootprint", title: "Sustainable Business Practices"}
];
$scope.organicCotton = $sce.trustAsHtml(
"<ul><li>Uses no pesticides or herbicides which a often toxic to humans and the environment</li> \
<li>Conventional cotton accounts for 25% of global pesticide usage</li> \
<li> Organic farming practices create healthy soils which make better use of water inputs and are more resilient in drought conditions</li> \
<li> The water pollution impact of organic has been shown to be 98% less than non-organic cotton production.</li></ul>"
);
所以基本上我已经为所有 iconClass 可能性设置了这些范围变量,即使我可以将正确的变量名称 (brand.iconClass) 放入 ng-bind-html 指令中。它只评估为“organicCotton”并且不承认它是一个变量。
提前感谢您的帮助。让我知道我是否可以进一步澄清!
【问题讨论】:
-
如果你定义了“controller as itemPage”,你不能使用 $scope 模式以及相同的 ng-controller 绑定。这就是你在做什么?
-
是的,我同时使用 vm 和 $scope
标签: javascript angularjs angularjs-scope angularjs-ng-repeat ng-bind-html