gpt4 book ai didi

javascript - UI-Router AngularJS Controller 无法处理状态

转载 作者:行者123 更新时间:2023-12-03 07:27:19 25 4
gpt4 key购买 nike

我正在尝试了解 UI-Router 如何与 Angular 配合使用,但我遇到了困难。

我有一个索引:

 <body>
<div ui-view></div>

<!--Location of file holding app-->
<script src="App/indexApp.js"></script>
<!--source of state2 Controller-->
<script src="App/itemsController.js"></script>
</body>

app.js:

 var app = angular.module("ITS", ['ui.router'])
.config(['$httpProvider', '$stateProvider', '$urlRouterProvider', function ($httpProvider, $stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/home");
$stateProvider.state('home', {
url: "/home",
templateUrl: "Home.html",
controller: 'IndexCtrl'
})
$stateProvider.state('newItem', {
url: "/newItem",
templateUrl: "new.html",
controller: 'ItemCtrl'

})

Controller 的文件:

 app.controller("ItemCtrl", ['$scope', '$location', '$state',
function ($scope, $location, $state) {
$scope.testButton = function () { //Test FUNC
$window.alert("hey");
}
$scope.title="hello";

最后是 View 的 html 页面:

 <div ng-app="ITS" ng-controller="ItemCtrl">
<body>
<button ng-click="testButton()">Test</button>
<input type="text" ng-model="title"/>
</body>
</div>

问题:主页加载正常,我可以使用 ui-sref 从“主页”导航到“新建”,并且可以看到测试按钮。我知道 Controller 正在工作并且正在被访问,但是当我单击按钮时没有弹出任何内容,并且与“title”关联的字段未由 $scope 填充。

我听说解析对于在状态更改之前加载数据很重要,但对于像这样的问题,我似乎无法找到有关它们的太多信息。任何帮助将不胜感激。

最佳答案

我猜这可能是因为导入错误。您在方法中使用了 $window.alert(),但 $window 未作为依赖项包含在内。

尝试将 $window 添加到您的 Controller ,如下所示

app.controller("ItemCtrl", ['$scope', '$location', '$state', '$window',
function ($scope, $location, $state, $window) {
$scope.testButton = function () { //Test FUNC
$window.alert("hey");
};
$scope.title="hello";
}]);

这可能有用。另请检查您的控制台是否有错误。

关于javascript - UI-Router AngularJS Controller 无法处理状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35947928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com