javascript - Bootstrap 和 Angular ng-include 指令

标签 javascript html angularjs twitter-bootstrap angularjs-ng-include

所以,我有以下情况:在我的主index.html页面中:

<aside>
    <ul class="nav nav-pills nav-stack" id="myAffix">
        <li>...</li>
        <li>...</li>
        <li>...</li>
    </ul>
</aside>

在我的menus.js中:

 $('#myAffix').affix({
        offset: {
            top: 100
        }
    });

这应该使无序列表在向下滚动 100px 后保持不变。它完美地完成了这项工作。

但是,将我的aside移至另一个.html文件(aside.html),并将其包含在我的index.html中,如下所示:

<div ng-include="'aside.html'"></div>

aside 元素将不再粘连。我还在index.html 的body 标记末尾加载脚本。我该如何解决这个问题?

最佳答案

编辑:工作插件解决方案:http://plnkr.co/edit/rQJt3h

是的,您遇到了加载顺序问题。解决方案涉及使用指令。

在我看来,当人们告诉不要将 jQuery 与 AngularJS 一起使用时,他们是固执己见的。是的 - 您应该在指令中执行所有 DOM 操作。

为了使用 Bootstrap JavaScript 插件,您可以将词缀初始化包装在指令中:

app.directive('bootstrapAffix', function() {
  return {
    link: function(scope, element, attrs) {
      $(element).affix({ offset: $(element).parent().offset().top });
    }
  }
});

然后将其附加到您的元素:

<aside bootstrap-affix> ... </aside>

记住包含 CSS!

关于javascript - Bootstrap 和 Angular ng-include 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26849076/

相关文章:

javascript - 如何处理 DOM 和 Controller 之间的交互?

javascript - 无法使用 angularjs 正确打印表格

javascript - AngularJS $http 服务成功但数据库未更新

javascript - 使用 Leaflet.MarkerCluster.LayerSupport 插件在 Leaflet 中显示 PopUp

javascript - 异步 Javascript 有什么大不了的?

javascript - 从下到上在页面中定位元素

html - 纯 CSS 下拉问题

javascript - 无法读取未定义的属性 'compile'。似乎无法发现错误

javascript - MongoDB 将 mongo 实例包装在 Promise 中

javascript - 如何检测浏览器选项卡是否已更改并在发生更改时刷新它