更改输入后变量未更新

Variable is not updating after changing the input

本文关键字:更新 变量 输入      更新时间:2023-09-26

我的控制器:

.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">

它有效,以及如果我像这样使用"$parent":

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

这意味着使用"状态"没有像我预期的那样工作......它在修改时为输入创建一个"本地"范围......

你忘了添加ng-controller指令。

<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>
我相信

你的问题与你的ng模型中没有一个点有关。如果没有 Plunkr 来演示问题,我不能 100% 确定,但如果我要解决问题,这将是我首先要看的地方。

顺便说一句,范围内的点问题是为什么我更喜欢使用 vm 变量和 John Papa 推荐的"控制器作为"语法。