我是AngularJS的新手,使用AngularJS和RequireJS构建应用程序。
在其中一个带控制器的模块中,我使用$ modal服务创建了一个模态对话框。模态对话有Angular Schema Form和Datepicker Addon。
Datepicker需要一些脚本文件才能工作。当我在head.html(主页)中添加这些脚本文件时,它在对话框中工作。但我无法更改主页面,因此我尝试在模块文件中加载依赖项,如module.js所示,但它不起作用。
module.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可以正常工作。
的index.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>
我在头部的index.html中检查了requirejs附加的脚本标记,它确实包含了所有我的datepicker依赖项(按照shim配置),但是直到我在索引中明确指定了这些依赖项后,datepicker才起作用。 html head tag。
有谁能告诉我哪里出错了?
答案 0 :(得分:0)
我的第一个想法是,datepicker组件不是一个模块,所以define可能无法正确加载它,你尝试将它包装成一个JavaScript模块,它可能就足够了,它通过
附加到角度上
angular.module('schemaForm').directive('pickADate', function() {
所以它需要能够在任何明显加载的范围内访问angular
。
我认为考虑到问题的年龄,你可能已经解决了这个问题。