Angularjs 将选择选项传递到新页面

Angularjs 将选择选项传递到新页面,angularjs,ng-options,cookiestore,Angularjs,Ng Options,Cookiestore,我需要在一个页面上的ng选项下拉列表中传递当前选择的选项,并使其成为另一个页面上ng选项下拉列表的默认选择 我可以将所选选项保存到$cookieStore并将其传递到下一页。但是我不能让它成为新页面下拉列表中的预选默认选项 在控制器1上,我有: $scope.selectType = [ { name: 'a' }, { name: 'b' }, { name: 'c' }, { name: 'd' } ] $scope.preSelectTypes = $scope.selectType[0

我需要在一个页面上的ng选项下拉列表中传递当前选择的选项,并使其成为另一个页面上ng选项下拉列表的默认选择

我可以将所选选项保存到$cookieStore并将其传递到下一页。但是我不能让它成为新页面下拉列表中的预选默认选项

在控制器1上,我有:

$scope.selectType = [
{ name: 'a' },
{ name: 'b' },
{ name: 'c' },
{ name: 'd' } ] 
$scope.preSelectTypes = $scope.selectType[0]
这将填充初始下拉列表,并使“a”成为默认选项

我还有下面的代码,它将所选选项保存到$cookieStore:

$cookieStore.put('abe', $scope.preSelectTypes)
在控制器2上,我有以下代码获取$cookieStore值:

$scope.selectType = $cookieStore.get('abe')
$scope.selectType.name返回以前选择的选项名称。但我不知道如何将它与新的下拉列表相匹配,并使其成为下拉列表中的默认选择


ng选项似乎不允许您将角度分配给每个选项的值拉到另一个控制器上使用,因此我无法进行匹配。

我建议使用一个工厂来填充select。然后使用手表监控select的值,并在其更改时更新工厂。然后使用selectFactory值在控制器中为第二个视图设置值

angular.module('myapp', []).controller('myController', function($scope, selectFactory) {
  $scope.selectModel = selectFactory.selectValue;

  $scope.$watch($scope.selectModel, function() {
    selectFactory.selectValue = $scope.selectModel;
  });
});

angular.module('myapp').controller('mySecondController', function($scope, selectFactory) {
  $scope.selectModel = selectFactory.selectModel;
});

angular.module('myapp').factory('selectFactory', function() {
return {
  selectValue: null
};
});

您可能在第二页的select元素上使用ng模型,在这种情况下,您可以使用以下代码:

$scope.ngModelProperty = $scope.selectType

如果您需要ng模型和selectType变量位于不同的作用域中,它会稍微复杂一些,但是$scope服务可以轻松地管理它。您通常希望ng模型指向预定义的值,否则您的选择将以下拉列表中的一个难看的空选项开始。

感谢您的快速回复。我已经在第二页的下拉列表中尝试了data ng model='selectType',但它不起作用。我仍然明白,我敢打赌,这是因为ng模式是一个非常芬尼基指令;它应该总是有一个点。本页解释了原因:。您是否可以编写您的文档,以便我们检查哪些内容确实不起作用。如果可能的话,还可以加一把小提琴。