1

我是 AngularJS 的新手,使用 AngularJS 和 RequireJS 构建应用程序。

在其中一个具有控制器的模块中,我使用 $modal 服务创建了一个模态对话。模态对话有Angular Schema FormDatepicker Addon

Datepicker 需要一些脚本文件才能工作。当我在 head 部分的 index.html(主页)中添加这些脚本文件时,它会在一个对话框中工作。但是我无法更改主页,所以我尝试在模块文件中加载依赖项,如 module.js 所示,但它不起作用。

模块.js

define(
    [ angular, .../path to datepicker dependencies ],
    function(angular) {
        return angular.module("mainctrl", [])
            .controller("test", function($scope,$modal) {
                $scope.formOperation=function() {
                    $modal.open({
                        templateurl:../schema-form.html,
                        controller: modelCtrl
                    });
                }
            })
    });

下面是主页的正文部分,如果我在 head 标签中添加这些脚本依赖项,datepicker 就可以工作。

索引.html

<body>
    <div data-ng-view="" id="ng-view"></div>

    <script src="bower_components/requirejs/require.js" data-main="../scripts/main"></script>
</body>

架构-form.html

<div class="modal-content h-widget-action-form">
    <style>
    @import url('/addons/h/widgets/h-action/h-action.css');

    </style>
    <div class="modal-body">
     <!-- <i class="glyphicon glyphicon-remove pull-right" data-ng-click="cancel()"></i><br/>
        <div data-ng-if="message" class="alert" data-ng-class="message.type">{{message.text}}</div> -->
            <form novalidate name="formCtrl" sf-schema="definition" sf-form="form" sf-model="model"></form>
    </div>

</div>

我检查了 head 中 index.html 中 requirejs 附加的脚本标签,它确实以正确的顺序包含了我所有的 datepicker 依赖项(使用 shim 配置),但是在我在 index.html 头标签中明确指定这些依赖项之前,datepicker 仍然无法工作.

谁能告诉我哪里出错了?

4

1 回答 1

0

我的第一个想法是 datepicker 组件不是模块,因此定义可能无法正确加载它,您是否尝试将其包装为 JavaScript 模块,这可能就足够了,它将自身附加到 angular via
angular.module('schemaForm').directive('pickADate', function() {,因此它需要能够angular访问显然它被加载的任何范围。

我假设您可能已经解决了这个问题,因为这个问题已经存在。

于 2017-09-10T11:30:23.357 回答