AngularJS在屏幕之间发送值

时间:2016-04-26 15:49:08

标签: javascript angularjs onsen-ui monaca

我正在使用Onsen UI,Monaca和AngularJS构建跨平台应用程序。

我有2个屏幕。第一个是用户必须输入调用API的Vehicle ID。根据输入的车辆ID,我想用此值填充API URL,并在下一个屏幕上显示基于车辆ID作为JSON对象返回的所有选项的列表。

例如,API调用如下所示: mymadeupdomain / api / vehicle.php?id = 109

109 将是用户输入的ID,用于确定详细车辆屏幕上显示的内容。

我对值进行了硬编码,我可以读回返回的JSON对象,但我似乎无法在用户输入时发送值。

vehicle-id.html 表单,用于从用户获取车辆ID

<form class="login-form" style="text-align: center" name="myForm">
    <section style="padding: 8px">
        <input type="text" 
        class="text-input--underbar" 
        required 
        minlength="3" 
        maxlength="10" 
        ng-model-options="{ debounce : 800 }"
        placeholder="Vehicle ID / Fleet Number" 
        ng-model="fleetIDSearch" >
    </section>
</form>

app.js 是处理表单检查的控制器

angular.module("myApp", ['onsen']).controller("vehicleController", function($scope, $http)
{
    // Watch for changes on the vehicle ID screen
    $scope.$watch('fleetIDSearch', function()
    {
       fetchFleetDetails(); 
    });

    $scope.fleetIDSearch = "";

    function fetchFleetDetails()
    {
        $http.get("http://mymadeupdomain/api/vehicle.php?id=" + $scope.fleetIDSearch).success(function(data)
        {
            $scope.fleetIDs = data;
        });
    }

    // Returns a list of all Vehivle Checks associated with Vehicle ID
    $http.get("http://mymadeupdomain/api/getfleetchecks.php?fleetid=" + $scope.fleetIDSearch).success(function(data) // NOT WORKING HERE
    {
        $scope.checkItemDescriptions = data;
    });
});

如何获取$ scope.fleetIDSearch =“”中输入的值;在第一个屏幕中,并将它们传递给第二个屏幕中的API URL?

我想显示与ID相关的所有支票的列表,如下所示 - 在API URL被硬编码时工作

vehicleCheck.html

<ul class="list">
    <li class="list__item" ng-repeat="checkItemDescription in checkItemDescriptions">
        {{checkItemDescription.checkitemdesc}}
        <label class="switch switch--list-item">
            <input type="checkbox" 
                class="switch__input" 
                checked >
            <div class="switch__toggle"></div>
        </label>
    </li>
</ul>

1 个答案:

答案 0 :(得分:1)

在您的情况下,您可以选择多个级别。

如果您只想在控制器之间共享数据,可以使用Factories

另一个解决方案是:

  • 在第一页上管理ng-model
  • 提交表单后,重定向到一个类似于/ content /:id
  • 的网址
  • 在路由器解析程序中管理您的请求(获取远程数据)
  • 直接在另一页的另一个控制器中获取结果