我刚刚开始尝试使用github中的angular-ui-router来使用状态,而不是使用路由混乱。我编写了一个控制器,并将其包含在我的所有捆绑文件,html等中。但是,当我导航到本地主机上的页面时,它会在Chrome控制台中引发以下错误:“错误:[ng:areq]参数' WeatherCtrl'不是一个函数,得到了字符串“。涉及'ui.state'的角度控制器抛出错误:参数'控制器'不是函数,得到字符串
以下是我的角度代码:
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-ui-router的最新文档,它似乎是正确的。
在此先感谢您的帮助!
@凯恩马西斯我也对此感到困惑。另外,在HTML模板中不使用ng-controller可能更清晰,而是在状态定义中指定控制器。您可以将控制器与任何/所有状态相关联,就像您将模板与每个状态相关联一样。 – 2014-10-06 17:53:03
@SunilD。通过在状态定义中指定控制器,我不确定你的意思。你的意思是: 函数($ stateProvider.nws)?或者我需要在每个var状态中指定它? – 2014-10-06 18:14:24
@Alexei这是在github和scotch上提供的文档,它不是股票AngularJS,所以,据我了解,它需要稍微不同的语法安排。 参见: http://scotch.io/tutorials/javascript/angular-routing-using-ui-router – 2014-10-06 18:17:28