javascript - 当AngularJS完成编译他的 View 时,如何在JS中定义?

标签 javascript angularjs

我需要为 AngularJS View 模板中定义的元素调用一些 JQ 插件,所以当我调用时,例如

   $(function() {
    $( "#selectable" ).selectable();
});

它不会工作,因为 AngularJS 完成编译后 id="selectable" 将可见。将此代码插入 Controller 中是错误的想法(做到了)。

最佳答案

您应该使用指令

angular.module('module').directive('my-selectable', function(){
    return {
        link: function(scope, element, attrs) {
            $(element).selectable();
        }
    }
});

在你看来

<select my-selectable>
...
</select>

我还没有测试过,但应该可以

我推荐该指令,但如果您想在使用 ui-router 时检测 View 何时加载

$rootScope.$on('$viewContentLoaded', function(){
    $('selector').selectable();
});

请记住,每次状态发生变化时都会加载此代码

关于javascript - 当AngularJS完成编译他的 View 时,如何在JS中定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37972385/

相关文章:

javascript - 在 Firebase 中跨子数组搜索

angularjs - 有没有办法在 ng-repeat 的最后一次迭代中做一些不同的事情

angularjs - 每当一个或其他字段模型发生变化(每次击键)时,使用 Angular 指令验证密码并确认密码字段

javascript - mobx: array.map() 不是函数

javascript - 在构造函数之外更改 JavaScript 中的构造函数方法?

javascript - 向每个表行添加仅影响该表行的事件处理程序?

javascript - 复选框未显示在 md-select multiple 中

Javascript - 语法错误 : Invalid or unexpected token - while creating object - Invisible character

javascript - 通过 cdn 在 ckeditor 中禁用自动 <p> </p>

javascript - 使用 $q promise ,将参数传递给下一个函数