UI Bootstrap 下拉指令导致 multidir 问题
UI Bootstrap dropdown directive causes multidir issue
您好,我正在尝试让 UI Bootstrap 的下拉指令起作用。每当我尝试使用 'dropdown' 指令时,我都会收到此错误消息:
控制台错误消息:
Multiple directives [dropdown, dropdown] asking for 'dropdown' controller on: <li class="dropdown pos-stc" dropdown="">
http://errors.angularjs.org/1.3.9/$compile/multidir?p0=dropdown&p1=dropdown&p2='dropdown'ontroller&p3=%3Cli%class%3D%dropdown%20pos-stc%22%20dropdown%3D%22%22%3E
at http://localhost:9000/bower_components/angular/angular.js:63:12
at assertNoDuplicate (http://localhost:9000/bower_components/angular/angular.js:7990:15)
at applyDirectivesToNode (http://localhost:9000/bower_components/angular/angular.js:7339:11)
at compileNodes (http://localhost:9000/bower_components/angular/angular.js:6997:15)
at compileNodes (http://localhost:9000/bower_components/angular/angular.js:7009:15)
at compileNodes (http://localhost:9000/bower_components/angular/angular.js:7009:15)
at compile (http://localhost:9000/bower_components/angular/angular.js:6904:15)
at link (http://localhost:9000/bower_components/angular/angular.js:22225:9)
at invokeLinkFn (http://localhost:9000/bower_components/angular/angular.js:8213:9)
at nodeLinkFn (http://localhost:9000/bower_components/angular/angular.js:7722:11) angular.js:11594(anonymous function) angular.js:11594(anonymous function) angular.js:8544invokeLinkFn angular.js:8215nodeLinkFn angular.js:7722compositeLinkFn angular.js:7075publicLinkFn angular.js:6954boundTranscludeFn angular.js:7093controllersBoundTransclude angular.js:7749(anonymous function) angular.js:22173processQueue angular.js:13171(anonymous function) angular.js:13187Scope.$eval angular.js:14384Scope.$digest angular.js:14200Scope.$apply angular.js:14489done angular.js:9646completeRequest angular.js:9836requestLoaded
有人能告诉我错误是什么吗?当我删除指令时,一切都很好,除了下拉菜单不起作用:(
HTML:
<li class="dropdown" dropdown>
<a href class="dropdown-toggle clear" dropdown-toggle>
<span class="thumb-sm avatar pull-right m-t-n-sm m-b-n-sm m-l-sm">
<img src="img/a0.jpg" alt="...">
<i class="on md b-white bottom"></i>
</span>
<span class="hidden-sm hidden-md">John.Smith</span> <b class="caret"></b>
</a>
<!-- dropdown -->
<ul class="dropdown-menu animated fadeInRight w">
<li class="wrapper b-b m-b-sm bg-light m-t-n-xs">
<div>
<p>300mb of 500mb used</p>
</div>
<progressbar value="60" class="progress-xs m-b-none bg-white"></progressbar>
</li>
<li>
<a href>
<span class="badge bg-danger pull-right">30%</span>
<span>Settings</span>
</a>
</li>
<li>
<a ui-sref="app.page.profile">Profile</a>
</li>
<li>
<a ui-sref="app.docs">
<span class="label bg-info pull-right">new</span>
Help
</a>
</li>
<li class="divider"></li>
<li>
<a ui-sref="access.signin">Logout</a>
</li>
</ul>
<!-- / dropdown -->
</li>
假设您使用的不是最新版本的 bootstrap。以前的版本(例如:0.11.0)有指令 class 限制(C
)以及属性限制(A
)。因此,您通过指定 class 以及属性来重复元素的指令。这会导致多个指令错误。您可以只使用 class 名称,因为无论如何您都需要它来应用适当的内置 bootstrap css 规则。 i.e 将 <li class="dropdown" dropdown>
更改为 <li class="dropdown">
或 将其升级为 bootstrap 0.12.0
.
尝试:
<li class="dropdown">
<a href class="dropdown-toggle clear">
请记住,当您将它升级到 0.12.0 或更高版本时,它们已经删除了对指令的 class 限制,并且它们将是基于所使用的 angular 版本的默认指令限制。所以你需要切换回你现在拥有的方式。参见 。
看来问题的原因可能是因为您从官方网站引用了演示,但使用的是旧版本 bootstrap。
您好,我正在尝试让 UI Bootstrap 的下拉指令起作用。每当我尝试使用 'dropdown' 指令时,我都会收到此错误消息:
控制台错误消息:
Multiple directives [dropdown, dropdown] asking for 'dropdown' controller on: <li class="dropdown pos-stc" dropdown="">
http://errors.angularjs.org/1.3.9/$compile/multidir?p0=dropdown&p1=dropdown&p2='dropdown'ontroller&p3=%3Cli%class%3D%dropdown%20pos-stc%22%20dropdown%3D%22%22%3E
at http://localhost:9000/bower_components/angular/angular.js:63:12
at assertNoDuplicate (http://localhost:9000/bower_components/angular/angular.js:7990:15)
at applyDirectivesToNode (http://localhost:9000/bower_components/angular/angular.js:7339:11)
at compileNodes (http://localhost:9000/bower_components/angular/angular.js:6997:15)
at compileNodes (http://localhost:9000/bower_components/angular/angular.js:7009:15)
at compileNodes (http://localhost:9000/bower_components/angular/angular.js:7009:15)
at compile (http://localhost:9000/bower_components/angular/angular.js:6904:15)
at link (http://localhost:9000/bower_components/angular/angular.js:22225:9)
at invokeLinkFn (http://localhost:9000/bower_components/angular/angular.js:8213:9)
at nodeLinkFn (http://localhost:9000/bower_components/angular/angular.js:7722:11) angular.js:11594(anonymous function) angular.js:11594(anonymous function) angular.js:8544invokeLinkFn angular.js:8215nodeLinkFn angular.js:7722compositeLinkFn angular.js:7075publicLinkFn angular.js:6954boundTranscludeFn angular.js:7093controllersBoundTransclude angular.js:7749(anonymous function) angular.js:22173processQueue angular.js:13171(anonymous function) angular.js:13187Scope.$eval angular.js:14384Scope.$digest angular.js:14200Scope.$apply angular.js:14489done angular.js:9646completeRequest angular.js:9836requestLoaded
有人能告诉我错误是什么吗?当我删除指令时,一切都很好,除了下拉菜单不起作用:(
HTML:
<li class="dropdown" dropdown>
<a href class="dropdown-toggle clear" dropdown-toggle>
<span class="thumb-sm avatar pull-right m-t-n-sm m-b-n-sm m-l-sm">
<img src="img/a0.jpg" alt="...">
<i class="on md b-white bottom"></i>
</span>
<span class="hidden-sm hidden-md">John.Smith</span> <b class="caret"></b>
</a>
<!-- dropdown -->
<ul class="dropdown-menu animated fadeInRight w">
<li class="wrapper b-b m-b-sm bg-light m-t-n-xs">
<div>
<p>300mb of 500mb used</p>
</div>
<progressbar value="60" class="progress-xs m-b-none bg-white"></progressbar>
</li>
<li>
<a href>
<span class="badge bg-danger pull-right">30%</span>
<span>Settings</span>
</a>
</li>
<li>
<a ui-sref="app.page.profile">Profile</a>
</li>
<li>
<a ui-sref="app.docs">
<span class="label bg-info pull-right">new</span>
Help
</a>
</li>
<li class="divider"></li>
<li>
<a ui-sref="access.signin">Logout</a>
</li>
</ul>
<!-- / dropdown -->
</li>
假设您使用的不是最新版本的 bootstrap。以前的版本(例如:0.11.0)有指令 class 限制(C
)以及属性限制(A
)。因此,您通过指定 class 以及属性来重复元素的指令。这会导致多个指令错误。您可以只使用 class 名称,因为无论如何您都需要它来应用适当的内置 bootstrap css 规则。 i.e 将 <li class="dropdown" dropdown>
更改为 <li class="dropdown">
或 将其升级为 bootstrap 0.12.0
.
尝试:
<li class="dropdown">
<a href class="dropdown-toggle clear">
请记住,当您将它升级到 0.12.0 或更高版本时,它们已经删除了对指令的 class 限制,并且它们将是基于所使用的 angular 版本的默认指令限制。所以你需要切换回你现在拥有的方式。参见
看来问题的原因可能是因为您从官方网站引用了演示,但使用的是旧版本 bootstrap。