2

我有三个相互绑定的选择菜单,并且想要设置两个选择菜单的选定值。我要设置的值带有范围。我尝试了 ng-init 但这没有用。工作小插曲

<select ng-init="selManga=direk" ng-model="selManga" ng-options="manga.seri for manga in mangas">
    <option value="">Select a Manga</option>
</select>

<select ng-init="selChapter=bacanak" ng-show="selManga" class="browser-default" ng-model="selChapter" ng-options="+idx as chapter.klasor for (idx, chapter) in selManga.randomword">
    <option value="">Chapter</option>
</select>

<select ng-show="selManga.randomword[selChapter].yol" class="browser-default" ng-model="selPage" ng-options="+idx as (+idx + 1) for (idx, page) in selManga.randomword[selChapter].yol">
    <option value="">Page</option>
</select> 

Javascript:

.controller('nbgCtrl',function  ($scope, MMG, $stateParams) {
$scope.direk = $stateParams.seri;
$scope.bacanak = $stateParams.klasor;

MMG.adlar.success(function(loHemen) {
    $scope.mangas = loHemen;
});
$scope.next = function (manga, chapter, page) {
    var nextPage = page + 1;
    if (angular.isDefined(manga.randomword[chapter].yol[nextPage])) {
        $scope.selPage = nextPage;
    } else if (angular.isDefined(manga.randomword[chapter + 1])) {
        $scope.selChapter = chapter + 1;
        $scope.selPage = 0;
    }
}
})
4

2 回答 2

1

在您的代码中,您分配direkbacanak赋值不止一次,这可能会导致问题。只设置variable一次属性。

$scope.direk = $stateParams.seri;
$scope.bacanak = $stateParams.klasor;

$scope.direk = $stateParams.xy;   //Remove if not required
$scope.bacanak = $stateParams.xz; //Remove if not required

设置selManga$stateParams而不是将其设置为direk

$scope.selManga = $stateParams.seri;  // Set selManga from $stateParams
$scope.selChapter = $stateParams.klasor;  // Set selChapter from $stateParams

ng-init="selManga=direk"不起作用的原因是因为语法错误:ng-init="selManga=direk"应该是ng-init="selManga='direk'" 在使语法正确后,dropdown不会因为ng-repeat. ng-init将值设置为模型,但在设置值时ng-repeat未完成选项的设置值,因此selManga从 ng-init 设置不更新选项到下拉菜单。

于 2015-10-16T09:38:38.457 回答
1

要从 url 中提取漫画、章节和页面的值,您应该使用$routeParams您的模块应该包含的对象ngRoute

我在这里准备了一个示例,它可能并不明显,但如果您下载代码并在自己的浏览器中运行它,您就可以Manga/Naruto/ch/100从 url 栏访问路由。

一旦你重构了你的应用程序以使用路由和 routeParams,在我的示例中,我直接将从 url 获得的章节和页面绑定到视图,但如果你将它们绑定到下拉列表的模型,下拉列表将更新。

$scope.params = $routeParams;
$scope.selManga = $scope.params.bookId

当您从下拉列表中选择时,这不会更新 url。

于 2015-10-16T10:46:07.913 回答