首先,我知道我将不得不更改标题,希望我可以根据答案更好地形成我的问题。
我正在研究breadcrumb using angular(如果链接失败,请告诉我)但由于某种原因它无法正常工作。一切似乎都很好但是当我点击链接转到下一页时(对于烦人的警报提前抱歉)。我收到以下错误...
未捕获的TypeError:无法读取未定义的属性“addCrumbs”
该指令显然正在工作,所以我猜这是导致问题的这条线......
angular.element('#crumb').scope().addCrumbs(crumbs);
有人可以解释为什么这不起作用吗?
答案 0 :(得分:2)
首先,Angular专为单页应用程序而设计,可以通过ngRoute (official)或ui-router (from Angular UI Team, more powerful, more complicated)等模块模拟页面之间的导航。
< / LI>您的示例并未遵循&#34; Angular方式&#34;因为你有两个&#34;索引&#34;页面,我的意思是,每次点击内部链接时都会重新加载Angular(和您的应用),这样您就无法在页面之间共享变量(在您的情况下,您需要&#34;面包屑&#34;共享页面之间)。
您的breadcrumb
指令应通过data binding共享breadcrumb
数组,而不是明确使用外部控制器。 See here for more infos
ng-repeat
指令应该应用于li
元素而不是ol
元素。
请参阅 updated version of your Plunkr 。 我添加了ngRoute模块和分隔页面。 但是我认为它不是一种非常可重复使用且干净的面包屑方式。
我建议您使用专用模块来处理您的面包屑,例如ng-breadcrumb(请参阅 demo here )