【发布时间】:2014-10-06 16:31:03
【问题描述】:
我刚刚开始尝试使用来自 github 的 angular-ui-router 来使用状态而不是路由的混乱。我已经编写了一个控制器并将其包含在我所有的捆绑文件、html 等中。但是,当我导航到本地主机上的页面时,它会在 chrome 控制台中引发以下错误:“错误:[ng:areq] Argument ' WeatherCtrl' 不是函数,有字符串"。
以下是我的角码:
Kr.controller("WeatherCtrl", ['ui.state'])
.config(['$stateProvider',
function($stateProvider) {
var weather = {
name: 'weather',
url: '/nws',
abstract: true,
templateUrl: 'partials/webtools/nws/weatherDefault.html'
};
var smallWeather = {
name: 'smallWeather',
url: '/nws/shortForecast',
parent: weather,
templateUrl: 'partials/webtools/nws/shortForecast'
};
var mediumWeather = {
name: 'mediumWeather',
url: '/nws/mediumForecast',
parent: weather,
templateUrl: 'partials/webtools/nws/mediumForecast'
};
var bigWeather = {
name: 'bigWeather',
url: '/nws/longForecast',
parent: weather,
templateUrl: 'partials/webtools/nws/longForecast'
};
$stateProvider
.state(weather)
.state(smallWeather)
.state(mediumWeather)
.state(bigWeather);
}
]);
这是相关的html代码:
<div ng-controller ="WeatherCtrl">
<div class="span11">
<ul class="a-btn-group text-center">
<li ui-sref-active="active" class="item">
<a ui-sref=".smallWeather" class="btn btn-primary">
<i class="fa fa-bolt"></i> 6 to 10 Day Forecast</a>
</li>
<li ui-sref-active="active" class="item">
<a ui-sref=".mediumWeather" class="btn btn-primary">
<i class="fa fa-bolt"></i> 8 to 14 Day Forecast</a>
</li>
<li ui-sref-active="active" class="item">
<a ui-sref=".bigWeather" class="btn btn-primary">
<i class="fa fa-bolt"></i> Three Month Outlook</a>
</li>
</ul>
</div>
<p ui-sref=='weather'>Please select a Forecast Type using the buttons above</p>
</div>
奇怪的是,当页面处于“天气”状态时,段落元素将显示,但我不能确定这是否是因为 ui-sref 被忽略并且段落只是将自身作为独立元素插入。此外,我确实认识到 Angular 应用程序的语法有些古怪,但根据 angular-ui-router 的最新文档,它似乎是正确的。
提前感谢您的帮助!
【问题讨论】:
标签: javascript angularjs angular-ui-router