jQuery 看不到 AngularJS 模板 ngRepeat 注入



我是Angular的新手,我刚开始把它插入到我的工作网站。

我试图使用这个例子作为"滚动到视图"插件来检测在视图中滚动的DOM元素。

当我使用ngRepeat指令插入数据时,即使是本地数据,jquery插件也看不到加载的数据。仍然看到空容器

我该如何处理?

<div class="row scrolling" ng-repeat="item in projects">
 <span>{{item.name}}</span>
</div>

数据设置为:

美元范围。[…];

在控制器内部。

请告诉我jquery函数处理数据的正确方法是什么

谢谢。

无论何时使用jQuery,都应该在指令中使用。

Angular将模型、视图和控制器分开,因为它允许你在抽象层次之间保持清晰的划分——业务逻辑在一个单独的服务中,DOM操作,等等。

放置与DOM交互的代码的适当位置是在指令内部,通过使用链接函数来触发javascript。最有可能发生的情况是,在angular渲染任何组件之前,你在容器上注册了scroll插件,这意味着scroll没有正确触发。这就意味着你需要在每次视图改变时触发滚动插件的注册。

看到你正在使用ng-repeat,这意味着你的视图将随着你的模型而改变。因此,你可以监听生成ng-repeat的数组项的变化,当它发生变化时,在包含元素上重新注册滚动插件。

您可能需要先注销之前的任何scroll插件调用,但基本前提是让您的容器在作为ng-repeat源的数组上使用$scope.$watch进行侦听。

$scope.$watch('projects', function () {
  $container.scrollable()
});

很难给你一个更具体的答案,因为我看不出你到底在做什么,但希望这能起到一点指导作用。了解angular的摘要系统是如何工作的,你会对这个框架更加熟悉。

最新更新