Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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_Angularjs_Angularjs Scope - Fatal编程技术网

Javascript 棱角;新行“;功能

Javascript 棱角;新行“;功能,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我目前正在为一个实际上是“交易构建者”的网站构建一个小部件。在构建器小部件中,将有一个“添加新项目”按钮,该按钮将向列表添加一个新的设备项目 <ul class="deal-builder-devices entity"> <li ng-repeat="device in devices"> <div class="db-handset-image"> <span class="phone-silh

我目前正在为一个实际上是“交易构建者”的网站构建一个小部件。在构建器小部件中,将有一个“添加新项目”按钮,该按钮将向
  • 列表添加一个新的
    设备
    项目

     <ul class="deal-builder-devices entity">
         <li ng-repeat="device in devices">
             <div class="db-handset-image">
                 <span class="phone-silhouette" ng-hide="hideSilhouette"></span>
                     <img ng-repeat="image in modelImages" src="[[image]]" ng-hide="!hideSilhouette" />
                 </span>
             </div>
             <div class="db-device">
                 <ul class="opts">
                     <li>
                         <select ng-model="selectedManufacturer" ng-change="getManufacturerModels(selectedManufacturer)">
                             <option value="">Manufacturer</option>
                             <option ng-repeat="manufacturer in manufacturers" value="[[manufacturer.id]]">[[manufacturer.name]]</option>
                         </select>
                      </li>
                      <li>
                          <select ng-disabled="!models > 0" ng-model="selectedModel" ng-change="loadModelImage(selectedModel)">
                              <option value="">Model</option>
                              <option ng-repeat="model in models" value="[[model.id]]">[[model.model]]</option>
                           </select>
                      </li>
                 </ul>
             </div>
          </li>
      </ul>
    
      <div class="deal-builder-controls entity">
          <button class="db-add-handset" ng-click="addDevice()"><i class="fa fa-plus-circle"></i> Add another handset</button>
          <button class="db-find-deals">Find deals</button>
      </div>
    

    所有的升降箱上都有相同的型号,所以这是正常的 用于


    然后,它会将其设置为设备,并且应该可以工作。

    最好将图像、制造商和型号推送到
    $scope.devices

    还可以使用
    angular.copy()
    复制对象,而不是传递引用。这样,您可以单独修改每个对象

    我还改变了一件事,那就是
    ng repeat
    之后按$index跟踪。这是必要的,因为我们正在将相同的对象推入数组,这在
    ng repeat
    中是不允许的。如果要避免
    跟踪,可以将设备数组更改为具有一些通用键的对象

    最后,将
    ng model
    设置为
    device.childProperty
    。现在,您在
    设备
    阵列中拥有了所需的所有数据


    下面是一个例子

    如果您添加新手机(例如3部)并更改下拉列表,它们都会更改?@leaksterrr我无意中没有使用
    angular.copy
    内部的
    addDevice
    功能。你可以看看普朗克,现在没事了。
    $scope.devices = [0];
    $scope.devicesCounter = 0;
    
    $scope.addDevice = function () {
    
        $scope.devicesCounter++;
        $scope.devices.push($scope.devicesCounter);
    
    }
    
    ng-model="device.selectedModel"