Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.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 在两次选择中设置默认值?_Javascript_Html_Angularjs_Select_Angularjs Scope - Fatal编程技术网

Javascript 在两次选择中设置默认值?

Javascript 在两次选择中设置默认值?,javascript,html,angularjs,select,angularjs-scope,Javascript,Html,Angularjs,Select,Angularjs Scope,我的选择有些问题。以下是代码: <select ng-model="car" ng-options="car.name for car in cars track by car.id" class="form-control"> <option value="">Choose model name</option> </select> <br /> <select ng-options="model.name

我的选择有些问题。以下是代码:

 <select ng-model="car" ng-options="car.name for car in cars track by car.id" class="form-control">
    <option value="">Choose model name</option>
  </select>
  <br />
  <select ng-options="model.name for model in car.models track by model.id" ng-model="model" class="form-control">
    <option value="">Choose car</option>
  </select>

选择型号名称

选车
我希望当我访问此页面时,这两个选项具有默认值。例如,在第一个选项中选择“BMW”,在第二个选项中同时选择“528I”。我正在尝试执行以下解决方案:

<select ng-model="car" ng-init="car.id = 1" ng-options="car.name for car in cars track by car.id" class="form-control">
    <option value="">Choose model name</option>
  </select>
  <br />
  <select ng-init="model.id = 5" ng-options="model.name for model in car.models track by model.id" ng-model="model" class="form-control">
    <option value="">Choose car</option>
  </select>

选择型号名称

选车
但它只适用于第一次选择。(当我在第一个选择中选择id为1的名称时,第二个选择将切换到id为5的模型;)

我不知道如何同时在两个选择中重新编译默认值。 你有什么想法吗


这里是您可以使用
nginit
,如下所示:

  <select ng-init="car=cars[0]" ng-model="car" ng-options="car.name for car in cars" class="form-control">
    <option value="">Choose model name</option>
  </select>
  <br />
  <select ng-init="model=car.models[0]" ng-options="model.name for model in car.modelsd" ng-model="model" class="form-control">
    <option value="">Choose car</option>
  </select>
  <select ng-init="car=1" ng-model="car" ng-options="car.id as car.name for car in cars" class="form-control">
    <option value="">Choose model name</option>
  </select>
  <select ng-init="model=5" ng-model="model" ng-options="model.id as model.name for model in ((cars | filter:{id:car})[0].models)" class="form-control">
    <option value="">Choose car</option>
  </select>
但是,为了用汽车模型呈现第二个选择,您必须做一些非常尴尬的事情,因为在这种情况下,您的变量
car
将是
int
(汽车的id),而不是“car”对象,因此您必须这样做:

  <select ng-init="car=cars[0]" ng-model="car" ng-options="car.name for car in cars" class="form-control">
    <option value="">Choose model name</option>
  </select>
  <br />
  <select ng-init="model=car.models[0]" ng-options="model.name for model in car.modelsd" ng-model="model" class="form-control">
    <option value="">Choose car</option>
  </select>
  <select ng-init="car=1" ng-model="car" ng-options="car.id as car.name for car in cars" class="form-control">
    <option value="">Choose model name</option>
  </select>
  <select ng-init="model=5" ng-model="model" ng-options="model.id as model.name for model in ((cars | filter:{id:car})[0].models)" class="form-control">
    <option value="">Choose car</option>
  </select>

您可以在控制器中使用ng模型属性,并指定一个默认变量,如

<div ng-controller="MyController" >
    <form>
        <select ng-model="myForm.car">
            <option value="nissan">Nissan</option>
            <option value="toyota">Toyota</option>
            <option value="fiat">Fiat</option>
        </select>
    </form>

    <div>
        {{myForm.car}}
    </div>
</div>

<script>
    angular.module("myapp", [])
            .controller("MyController", function($scope) {
                $scope.myForm = {};
                $scope.myForm.car  = "nissan";
            } );
</script>

日产
丰田
法令
{{myForm.car}
angular.module(“myapp”,[])
.controller(“MyController”,函数($scope){
$scope.myForm={};
$scope.myForm.car=“日产”;
} );

通过此链接,您将了解angularjs中的表单处理:

Ou!我还有其他问题。我可以用“id”代替数组索引吗?@RomanA。当然可以给我一分钟,我会更新answer@RomanA. 我已经更新了答案,希望这会有所帮助。谢谢这真的很有帮助!你真棒@约瑟夫和公认的答案一样。那个家伙使用了ng init,我在控制器中使用了ng模型,就是这样。:)我寻找没有任何控制器的解决方案,在我的代码中我也使用了ng模型。