我希望这对某人来说是一件容易的事,因为它让我发疯。在这里亲自体验这个问题:plnkr.co。
我想将一些 HTML 从控制器传递到视图。这是控制器,它改编自Twitter Bootstrap提供的示例:
angular.module('plunker', ['ui.bootstrap']);
function DropdownCtrl($scope) {
$scope.items = [
"The first choice!",
"And another choice for you.",
"but wait! A third!"
];
$scope.html = '<li class="dropdown" ng-controller="DropdownCtrl">' +
'<a class="dropdown-toggle">' +
'Click me for a dropdown, yo!' +
'</a>' +
'<ul class="dropdown-menu">' +
'<li><a>Why</a></li>' +
'<li><a>doesn\'t</a></li>' +
'<li><a>this</a></li>' +
'<li><a>work???</a></li>' +
'</ul>' +
'</li>';
}
没有什么令人兴奋的,当然。这是视图:
<h3>This works fine</h3>
<li class="dropdown" ng-controller="DropdownCtrl">
<a class="dropdown-toggle">
Click me for a dropdown, yo!
</a>
<ul class="dropdown-menu">
<li ng-repeat="choice in items">
<a>{{choice}}</a>
</li>
</ul>
</li>
<h3>Why doesn't this work?</h3>
<div ng-controller="DropdownCtrl" ng-bind-html-unsafe="html"></div>
简而言之,根据提供的示例,第一个下拉菜单可以正常工作。然而,第二个下拉菜单什么也不做。它的代码从控制器传递到视图并原封不动地交付,但下拉菜单不会下降。
告诉我以前有人遇到过这个问题。