Javascript 涉及'的角度控制器;ui.state';抛出错误:参数';控制器';不是函数,获取字符串
我刚刚开始使用github的angular ui路由器进行试验,以使用状态,而不是混乱的路由。我已经编写了一个控制器,并将其包含在所有捆绑文件、html等中。但是,当我在本地主机上导航到该页面时,它会在chrome控制台中抛出以下错误:“错误:[ng:areq]参数'WeatherCtrl'不是函数,而是字符串” 以下是我的角度代码:Javascript 涉及'的角度控制器;ui.state';抛出错误:参数';控制器';不是函数,获取字符串,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我刚刚开始使用github的angular ui路由器进行试验,以使用状态,而不是混乱的路由。我已经编写了一个控制器,并将其包含在所有捆绑文件、html等中。但是,当我在本地主机上导航到该页面时,它会在chrome控制台中抛出以下错误:“错误:[ng:areq]参数'WeatherCtrl'不是函数,而是字符串” 以下是我的角度代码: Kr.controller("WeatherCtrl", ['ui.state']) .config(['$stateProvider', fun
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>
-
6至10天预测
-
8至14天预测
-
三个月展望
请使用上面的按钮选择预测类型
奇怪的是,当页面的状态为“weather”时,段落元素会显示出来,但我不能确定这是否是因为ui sref被忽略,而段落只是作为一个独立的元素插入。此外,我确实认识到angular应用程序的语法有点时髦,但根据angular ui router的最新文档,它似乎是正确的
提前感谢您的帮助 这个字符串是什么意思
Kr.controller("WeatherCtrl", ['ui.state'])
我猜您试图定义WeatherCtrl
控制器,但提供了数组['ui.state']
,而不是控制器函数
试试这个:
Kr.controller("WeatherCtrl", function($scope) {
// Controller logic...
})
决心
对于任何有类似问题的人,我尝试在控制器中定义这一点。完全错了。我没有意识到这需要在整个应用程序中使用angular.module来定义
任何试图指出我误解了谁的人。@Cain Mathis我对此也感到困惑。另外,在HTML模板中不使用ng控制器可能更干净。。。而是在状态定义中指定控制器。您可以将控制器与任何/所有状态关联,就像将模板与每个状态关联一样。@SunilD。我不确定在状态定义中指定控制器是什么意思。你的意思是:函数($stateProvider.nws)?或者我需要在每个var状态中指定它吗?@Alexei这是github和scotch上提供的文档,它不是stock AngularJS,因此,据我所知,它需要稍微不同的语法安排。见: