2014-12-04 84 views
0

我的控制器后不更新:变量改变输入

.controller('ExampleController', ['$scope', function($scope) { 
    $scope.barcode = 111; 
    $scope.scanBarcode = function() { 
     $scope.barcode = 123123123; 
    }; 

    $scope.scanThis = function() { 
     $scope.barcode = 456456456; 
    }; 
}]) 

我的观点:

<form> 
    <div class="list list-inset"> 
     <label class="item item-input"> 
      <input type="number" placeholder="Code?" ng-model="barcode"> 
     </label> 
     {{barcode}} 
    </div> 
    <button class="button button-positive button-block" ng-click="scanBarcode()">Scan!</button> 
    <button class="button button-positive button-block" ng-click="scanThis()">Scan this!</button> 
</form> 

是作为一个输入和两个按钮来设置“条形码” VAR值一样简单。 它加载视图时,我可以单击按钮和值的变化,但只要我改变输入值的功能停止工作....

编辑1: 不,我没有忘记“连接”视图控制器,我有以下代码:

.state('tab.dash', { 
     url: '/dash', 
     views: { 
     'tab-dash': { 
      templateUrl: 'templates/tab-dash.html', 
      controller: 'ExampleController' 
     } 
     } 
    }) 

编辑2: 如果我使用:

<form ng-controller="ExampleController"> 

它的工作原理,以及如果我用“$父“像这样:

<input type="number" placeholder="Code?" ng-model="$parent.barcode"> 

这意味着使用“状态”不工作如我所料...它开创了输入“本地”范围修改时...

+0

您是否在加载视图时在输入中看到“111”?如果不是,ExampleController范围可能与表单元素不同(例如:如果表单是指令的一部分) – Edd 2014-12-04 13:46:33

+0

@Edd是的,我看到它。 – 2014-12-04 14:23:20

+1

如果您创建一个演示问题的Plunkr,它将会非常有帮助。 – 2014-12-04 14:28:45

回答

2

你忘了添加NG-控制器指示。

<form ng-controller="ExampleController"> 
    <div class="list list-inset"> 
     <label class="item item-input"> 
      <input type="number" placeholder="Code?" ng-model="barcode"> 
     </label> 
     {{barcode}} 
    </div> 
    <button class="button button-positive button-block" ng-click="scanBarcode()">Scan!</button> 
    <button class="button button-positive button-block" ng-click="scanThis()">Scan this!</button> 
</form> 
+0

不,请参阅我的编辑号码1. – 2014-12-04 14:26:17

+0

但是,它的工作.. 。如果我在输入上使用$ parent.barcode,它也能正常工作......这意味着使用“状态”不能按预期工作...... – 2014-12-04 15:04:37

+0

use ng-model =“barcode” – 2014-12-05 02:37:58