{{city.Name}} -6ren">
gpt4 book ai didi

javascript - 无法从子 Controller 访问父 Controller 的方法

转载 作者:行者123 更新时间:2023-11-28 15:30:46 26 4
gpt4 key购买 nike

我的html

<section class="localsContainer" ng-controller="LocalsCtrl">
<h3>Lokale</h3>
<div class="placesProgress"></div>
<ul>
<li ng-repeat="city in cities">
<p ng-show="city.LocalCount > 0" ng-click="getLocals(city.Id)">{{city.Name}}</p>
<ul ng-show="activeCityLeft === city.Id">
<li ng-repeat="local in locals[city.Id]">
<p>{{local.Name}} ng-click="getDetails()"</p>
</li>
</ul>
</li>
<li ng-if="cities.length == 0">
<strong>Nie znaleziono</strong>
</li>
</ul>
</section>

和js

angular.module('sandboxApp')
.controller('MainCtrl', function ($scope, API) {
API.newRequest('getCitiesList').success(function (data, status, headers, config) {
$scope.cities = data.data;
});
$scope.getDetails = function () {
console.log("test")
};
})
.controller('LocalsCtrl', function ($scope, API) {
$scope.locals = {};

$scope.getLocals = function (cityid) {
$scope.activeCityLeft = cityid;
API.newRequest('getLocalList', { params: { 'city_id': cityid.toString() }, cache: true }).success(function (data, status, headers, config) {
$scope.locals[cityid] = data.data;
});
};
})

如果我理解正确,我应该能够在任何地方调用“getDetails”方法,因为它是在主 Controller 上定义的,即使是从获得其赢得的 Controller 但嵌套在附加到主 Controller 的元素中的元素也是如此。但它不起作用,当我单击应该调用 getDetails 的元素时,它会显示 'ng-click="getDetails()' 作为 html 文本。

最佳答案

您的ng-click定义错误 - 您将其定义为 <p> 内的文本元素:

<p>{{local.Name}} ng-click="getDetails()"</p>

您应该将其定义为属性,因为它是指令:

<p ng-click="getDetails()">{{local.Name}}</p> 

关于javascript - 无法从子 Controller 访问父 Controller 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27458618/

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