2017-11-11 9 views
0

に私は要素があります。アクセス変数コントローラ

<div ng-if="products.length>0"> 
    <select ng-model="model.newItem" 
      ng-options="pr.id + ') ' for pr in products track by pr.id" 
      ng-init="model.newItem=products[0]" /> 
</div> 

を、私は、コントローラでモデルにアクセスしようとしました:

$scope.addProduct = function() { 
    console.log($scope.model.newItem); 
    console.log("/order/products/new/" + $scope.newItem.id); 
    $http.post("/order/products/new/" + $scope.newItem.id, null) 
     .then(
      function (response) { 
       $scope.currentOrder = response.data; 
       $scope.apply; 
      }, 
      function (errResponse) { 
       console.log(errResponse.statusText); 
      } 
     ) 
} 

が、モデルは未定義います。コントローラのスコープのモデルにアクセスするにはどうしたらいいですか?

+0

コード全体を表示する必要があります。あなたの現在のコードブロックには、$ scope上に製品を設定し、それをループしている場所はありません。 – pegla

+0

'model.newItem'をコントローラから設定していた場合、それをもっと制御できませんか? –

答えて

0

ng-ifの代わりにng-showを使用することをお勧めします。したがって、divを "破壊"する代わりに "隠す"ことです。これは

<div ng-show="products.length>0"> ... </div> 

scope.model.newItem

$を保存するでしょうこれはただ速い回避策ですが、それdiv要素が隠れて、それはまだメモリ上に保持することを考えると、あまりにも多くのコンテンツを持っていたときに重くなることができます。

関連する問題