Angular.js + require.js + jQuery插件自定义指令

时间:2014-10-10 22:32:50

标签: javascript jquery angularjs twitter-bootstrap

我是Angular和Require的新手,我的问题是关于下面的一段代码(我已经连接了角度和要求,如果被问到我可以包含文件); bootstrap-switch元素未初始化:

define(['myapp.ui/module', function (module) {
module.directive('bootstrapSwitch', ['$parse', '$path', function ($parse, $path) {
    return {
        restrict: 'A',
        replace: true,
        link: function (scope, element) {
            //load requirements for this directive.
            console.log(element.bootstrapSwitch);
            element.bootstrapSwitch();
        }
    };
    return require([
        'myapp.ui/switch/bootstrap-switch.min',
        'css!myapp.ui/switch/bootstrap-switch.min'],
        function () {
            return {
                restrict: 'A',
                replace: false,
                link: function (scope, element) {
                    //load requirements for this directive.
                    element.bootstrapSwitch();
                }
            };
        });
}]);

}]);

我能够看到正在加载的指令文件(上面那个),但是元素没有初始化,我看不到bootstrap-switch.min.css和bootstrap-switch.min.js(我知道路径工作,我确定我在某处有一个sintax问题。如果没有,请详细说明。任何帮助将不胜感激!!!!

谢谢!!!

2 个答案:

答案 0 :(得分:2)

语法问题1:

变化:

define(['myapp.ui/module', function (module) {

要:

define(['myapp.ui/module'], function (module) {

另外,请考虑使用与“module”不同的参数名称,因为它可能与AMD模块混淆。 (名为'module'的模块是一个特殊的模块,它引用加载的模块本身。)

语法问题2:

第二个return语句不会做任何事情。也许您希望在外部define中包含所有依赖项:

define([
    'myapp.ui/module',
    'myapp.ui/switch/bootstrap-switch.min',
    'css!myapp.ui/switch/bootstrap-switch.min'
], function (ui) {

答案 1 :(得分:0)

返回语句后无法返回另一个东西。如果require语句尝试加载某些依赖项,则可以将它放在define first参数中。