gpt4 book ai didi

javascript - Angularjs: Controller 被多次调用

转载 作者:数据小太阳 更新时间:2023-10-29 04:29:02 25 4
gpt4 key购买 nike

出于某种原因,当我在资源 1 和资源 2 之间切换时,我的 Controller 被两次调用。

代码如下:

index.html

<!DOCTYPE html>
<html ng-app="multiple_calls">

<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<link rel="stylesheet" href="style.css" />
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
<script src="app.js"></script>
</head>

<body ng-controller="MainCtrl">
<a href="#res/1">1</a>
<a href="#res/2">2</a>

<div ng-view>
</div>
</body>

</html>

app.js

var app = angular.module('multiple_calls', []);

app.
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/res/:id', {templateUrl: 'res.html',
controller: 'res'
});
}]);


app.controller('MainCtrl', function($scope) {
});

app.controller('res', function($scope, $routeParams) {
console.log('resource called')
$scope.id = $routeParams.id;
});

res.html

{{id}}

http://plnkr.co/edit/HsCJmbllOcnlvlc1oiHa?p=preview

如果您单击项目 1,然后单击项目 2,您会看到“调用的资源”打印了 3 次:资源之间的每次更改打印 2 次。

为什么会发生这种情况的任何线索?

最佳答案

找到一个完全相同的问题:

AngularJs: controller is called twice by using $routeProvider

解决办法是在路由器url末尾加“/”:

-      when('/res/:id',
+ when('/res/:id/',

关于javascript - Angularjs: Controller 被多次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19177753/

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