Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular.js将值从选择传递到另一个视图_Javascript_Angularjs - Fatal编程技术网

Javascript Angular.js将值从选择传递到另一个视图

Javascript Angular.js将值从选择传递到另一个视图,javascript,angularjs,Javascript,Angularjs,我想将一些选定值传递给另一个视图。这是我的HTML。有一个选择字段。单击按钮时,下一页应显示选定值作为标题 <div class="list"> <label class="item item-input item-select"> <div class="input-label"> Deine Stadt </div> <select ng-model="selectedCity" ng-option

我想将一些选定值传递给另一个视图。这是我的HTML。有一个选择字段。单击按钮时,下一页应显示选定值作为标题

<div class="list">
  <label class="item item-input item-select">
    <div class="input-label">
      Deine Stadt
    </div>
    <select ng-model="selectedCity" ng-options="city.name for city in cities">

    </select>
  </label>
</div>

<br>
<button ng-click="searchCity(selectedCity)" class="button button-outline button-positive">
  Gutscheine suchen
</button>
console.log(selectedCity.name)工作正常。但我如何将该值带到另一个控制器以在标题中显示它呢?我不需要服务!泰

更新:应显示标题的视图:

<ion-view title="{{selectedCity.name}}">
</ion-view>

如果其他视图指向其他路由,则可以将该值作为路由参数传递给其他视图

在routes.js中,可以像viewName/:paramName那样放置它

然后在控制器中,您可以像$routeParams.paramName.一样访问它


[paramName是要传递的参数的名称:D]

您可以在作用域链的更高层定义一个作用域变量,以便模型在两个控制器之间共享:

<body ng-controller="bodyCtrl">

    <ion-view title="{{model.selectedCity.name}}">
    </ion-view>

    <div ng-controller="AccountCtrl">
    <div class="list">
      <label class="item item-input item-select">
        <div class="input-label">
          Deine Stadt
        </div>
        <select ng-model="model.selectedCity" ng-options="city as city.name for city in cities">   
        </select>
      </label>
    </div>

    <br>
    <button ng-click="searchCity(model.selectedCity)" class="button button-outline button-positive">
      Gutscheine suchen
    </button>
    </div>
</body>
客户控制员

app.controller('bodyCtrl', function($scope) {
    $scope.model = { selectedCity: }
});
.controller('AccountCtrl', function($scope, $state) {
    $scope.cities = [
      {id:'001', name:'Konstanz'},
      {id:"002", name:"Freiburg"} 
    ];
    $scope.model.selectedCity = $scope.cities[0];

    $scope.searchCity = function(selectedCity){
        console.log(selectedCity.name);
        $state.go("tab.friends");
    };
});
和在控制器中

$scope.order_id = $routeParams.CityId;

无论是$broadcast还是service,除非它是具有继承作用域的子控制器,否则您可以直接在model中用点读取属性。您能给我一个匹配代码的示例吗?如果可以的话,我很乐意,但是我在代码中没有看到两个视图/模型,所以我真的不知道如何抽象itOk,它与AccountCtrl有什么关系?它是并行的吗,家长,孩子?我现在正在学习angular,但我认为是并行的。正确的解决方案,但你可以添加一些代码,使它不那么抽象?是的,这会很好。可能与上面的代码匹配;)是的,不过有点抽象。。不管怎样,很高兴这有帮助。请投票,如果它确实帮助了你,但这与我的问题无关,不是吗?这个“何时”应该放在哪里?在何处定义状态?“何时”应保留在路由提供程序中。应该使用ShoworderController中的$routeParams.CityId获取,您可以参考**[此处]**()
.controller('AccountCtrl', function($scope, $state) {
    $scope.cities = [
      {id:'001', name:'Konstanz'},
      {id:"002", name:"Freiburg"} 
    ];
    $scope.model.selectedCity = $scope.cities[0];

    $scope.searchCity = function(selectedCity){
        console.log(selectedCity.name);
        $state.go("tab.friends");
    };
});
when('/selectedCity/:CityId', {
      templateUrl: 'templates/CityDetails.html',
      controller: 'ShowOrderController'
});
$scope.order_id = $routeParams.CityId;