javascript - 使用 angularJS 在 Ionic 应用程序中的两个页面之间传递值

标签 javascript html angularjs web-applications ionic-framework

我是 Ionic 和 Angular 开发的新手,现在我的部分 ionic 应用程序遇到了一些问题。我有两个页面,一个包含一系列下拉选择和一个提交它们的按钮,另一个页面将接收用户选择的选项,处理它们并输出结果。我无法将下拉列表中的值传递到其他页面。

这是下拉列表所在页面的 Controller 。

.controller('mainCtrl', ['$scope', '$stateParams', // The following is the constructor function for this page's controller. See https://docs.angularjs.org/guide/controller
// You can include any angular dependencies as parameters for this function
// TIP: Access Route Parameters for your page via $stateParams.parameterName
function ($scope, $stateParams, PassDay) {
$scope.test1 = "tuesday";
$scope.start = "school"
$scope.end = "mall"
}])

这是我想要值转到的页面的 Controller 。我想在加载时将它们分配给该页面中的相应变量。

.controller('timesCtrl', ['$scope', '$stateParams', // The following is the constructor function for this page's controller. See https://docs.angularjs.org/guide/controller
// You can include any angular dependencies as parameters for this function
// TIP: Access Route Parameters for your page via $stateParams.parameterName
function ($scope, $stateParams, PassDay) {
$scope.day = "tuesday";
$scope.start = "school";
$scope.end = "town";

我的印象是我需要工厂或服务来做到这一点,但我不知道如何让它发挥作用。每次我尝试使用任何工厂时,它都会使应用程序崩溃。

app.factory('PassDay', function(){
    return 1;
});

这是带有下拉选择的页面的 HTML

<form id="form1" class="list">
            <label class="item item-select" id="select3">
                <span class="input-label">Choose Day</span>
                <select ng-model="test1">
                    <option value="tuesday">Tuesday</option>
                    <option value="friday">Friday</option>
                    <option value="saturday">Saturday</option>
                </select>
            </label>
            <label class="item item-select" id="select1">
                <span class="input-label">Start Location</span>
                <select ng-model="start">
                    <option value="school">school</option>
                    <option value="mall">Mall</option>
                    <option value="train">Train Station</option>
                    <option value="amc">AMC Movies</option>
                    <option value="mall2">Mall2</option>
                    <option value="pav">Pavilion</option>
                    <option value="market">Market Fair</option>
                    <option value="town">town</option>
                </select>
            </label>
            <label class="item item-select" id="select2">
                <span class="input-label">Destination</span>
                <select ng-model="select.end">
                    <option value="mall">Mall</option>
                    <option value="school">school</option>
                    <option value="train">Train Station</option>
                    <option value="amc">AMC Movies</option>
                    <option value="mall2">Mall2</option>
                    <option value="pav">Pavilion</option>
                    <option value="market">Market Fair</option>
                    <option value="town">town</option>
                </select>
            </label>
        </form>

最佳答案

首先,您必须为 timesCtrl 编写正确的路线。

 $state.when("times",
    url: "/times/:day/:start/:end', // Passing state parameters
    templateUrl: 'templates/times.html', // Times template url,
    controller: 'timesCtrl'
 })

然后编写 Controller 如下

.controller('mainCtrl', ['$scope', '$window', function ($scope, $window) {
  $scope.test1 = "tuesday";
  $scope.start = "school"
  $scope.end = "mall"

  $scope.showTimesPage = function() {
    $window.location.href = "#/times/" + $scope.test1 + "/" + $scope.start + "/" + $scope.end
  };
}])

.controller('timesCtrl', ['$scope', '$stateParams', function ($scope, $stateParams) {
  $scope.day = $stateParams.day;
  $scope.start = $stateParams.start;
  $scope.end = $stateParams.end;
})

点击按钮时调用函数

关于javascript - 使用 angularJS 在 Ionic 应用程序中的两个页面之间传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40644823/

相关文章:

javascript - 最大数量池从数据库输入文本,并在选择形成 html/js/php 时减少它

javascript - Webpack:Bundle.js - 未捕获的 ReferenceError:未定义进程

jQuery 脚本将匹配元素的属性移动到其子元素

html - 如何将我的百分比与进度条放在同一行?

javascript - Angularjs动态循环访问数组键的动态值

javascript - 在 JSON 对象的 html 页面上的 ListView 中显示图像和描述

javascript - 如何通过 javascript regexp 将图像元素与 src 进行匹配

java - 如何在 Android JAVA 中将具有 RGB 颜色的 HTML 字符串转换为具有十六进制颜色的 HTML 字符串

javascript - ng-repeat 和 "Controller as"

angularjs - @angular/router 在 angular.js 应用程序中不起作用