AngularJS:如何正确传入moment.js依赖?
AngularJS: How to correctly pass in moment.js dependency?
我有一个 app.js
,我在其中声明了我的应用程序 variable/module:
var myApp = angular.module('myApp', ['angularMoment']);
然后我让我的控制器与其他控制器一起传递参考并尝试进行 moment()
调用:
myApp.controller('myComtroller', ['$scope', 'moment', function ($scope, $http, $timeout, moment) {
var now = moment();
console.log(now);
}]);
我的控制台出现错误:
TypeError: moment is not a function
我不明白为什么要这样做。
在我的 body 即将结束时,我有这个作为参考:
<script src="~/lib/angular/angular.min.js"></script>
<script src="~/js/moment.js"></script>
<script src="~/lib/angular-moment/angular-moment.min.js"></script>
<script src="~/js/app.js"></script>
按照这个顺序。 (控制器稍后执行,该视图的部分脚本)
我通过从这里下载安装了 moment.js
:http://momentjs.com/docs/
但是我通过bower
安装了angular-moment
依赖项。
有什么建议吗?
您需要以正确的顺序传递依赖项,
myApp.controller('myComtroller', [
'$scope','$http', '$timeout', 'moment',
function ($scope , $http , $timeout, moment) {
var now = moment();
console.log(now);
}]);
您不需要将即时服务作为依赖项传递,您只需执行以下操作即可,
myapp.controller("myComtroller", function($scope) {
$scope.date = moment();
});
您的依赖项注释中缺少一些依赖项。
尝试:
myApp.controller('myComtroller', [
'$scope','$http', '$timeout', 'moment',
function ($scope , $http , $timeout, moment) {
var now = moment();
console.log(now);
}]);
此外,我建议使用 ng-annotate 来自动处理 DI 注释。
看看angular-momentjs.js
https://raw.githubusercontent.com/gdi2290/angular-momentjs/master/angular-momentjs.js
加载脚本angular-momentjs.js
<script type="text/javascript" src="./angular-momentjs.js"></script>
在应用模块中注入依赖项angular-momentjs,在控制器中注入$moment
let app = angular.module('myApp', ['angular-momentjs']);
app.controller('myCtrl', function($scope, $moment) {
let nowISO = $moment().toISOString();
console.log(nowISO);
});
我有一个 app.js
,我在其中声明了我的应用程序 variable/module:
var myApp = angular.module('myApp', ['angularMoment']);
然后我让我的控制器与其他控制器一起传递参考并尝试进行 moment()
调用:
myApp.controller('myComtroller', ['$scope', 'moment', function ($scope, $http, $timeout, moment) {
var now = moment();
console.log(now);
}]);
我的控制台出现错误:
TypeError: moment is not a function
我不明白为什么要这样做。
在我的 body 即将结束时,我有这个作为参考:
<script src="~/lib/angular/angular.min.js"></script>
<script src="~/js/moment.js"></script>
<script src="~/lib/angular-moment/angular-moment.min.js"></script>
<script src="~/js/app.js"></script>
按照这个顺序。 (控制器稍后执行,该视图的部分脚本)
我通过从这里下载安装了 moment.js
:http://momentjs.com/docs/
但是我通过bower
安装了angular-moment
依赖项。
有什么建议吗?
您需要以正确的顺序传递依赖项,
myApp.controller('myComtroller', [
'$scope','$http', '$timeout', 'moment',
function ($scope , $http , $timeout, moment) {
var now = moment();
console.log(now);
}]);
您不需要将即时服务作为依赖项传递,您只需执行以下操作即可,
myapp.controller("myComtroller", function($scope) {
$scope.date = moment();
});
您的依赖项注释中缺少一些依赖项。
尝试:
myApp.controller('myComtroller', [
'$scope','$http', '$timeout', 'moment',
function ($scope , $http , $timeout, moment) {
var now = moment();
console.log(now);
}]);
此外,我建议使用 ng-annotate 来自动处理 DI 注释。
看看angular-momentjs.js
https://raw.githubusercontent.com/gdi2290/angular-momentjs/master/angular-momentjs.js
加载脚本angular-momentjs.js
<script type="text/javascript" src="./angular-momentjs.js"></script>
在应用模块中注入依赖项angular-momentjs,在控制器中注入$moment
let app = angular.module('myApp', ['angular-momentjs']);
app.controller('myCtrl', function($scope, $moment) {
let nowISO = $moment().toISOString();
console.log(nowISO);
});