【发布时间】:2015-07-02 18:45:23
【问题描述】:
我是 Angular 的新手,我正在尝试了解基本知识 我的项目很平均。
我的路由器.js
router.get('/', function (req, res, next) {
res.render('index', {});
});
我的 Angularfile.js
var app = angular.module('ibApp', ['ngRoute','ui.router']);
app.config([
'$stateProvider',
'$urlRouterProvider',
function ($stateProvider, $urlRouterProvider) {
$stateProvider.state('home', {
url: '/',
resolve: {
foo: [function () {
console.log('inside')
}]
}
});
$urlRouterProvider.otherwise('home');
}]);
app.controller("MyCtrl",['$scope',function($scope) {
console.log("here!");
}]);
我的 index.html
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.10/angular.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.1/angular-route.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.10/angular-ui-router.js"></script>
<script src="/javascripts/angularApp.js"></script>
但是当我得到/(index)路由时,我没有console.log('inside'),而我只有console.log("here");
我也试过http://localhost:3000/#/,但我的问题仍然存在。
【问题讨论】:
-
从函数中移除 [ ]。
-
解决了吗?我试过了,但我有同样的问题
-
resolve 将函数返回给您的控制器,而不是函数的结果,并且由于该函数未命名,因此您无法在控制器中执行该函数。添加
()以确保函数执行。 -
Alert() 也不起作用?
-
@Claies 我错过了什么吗? resolve 确实运行函数,见the docs: "if function, then it is injection and the return value is treated as the dependency"
标签: javascript angularjs