ngModel的angularjs范围未按预期工作

时间:2015-01-18 10:13:26

标签: javascript angularjs angularjs-directive angularjs-scope ionic-framework

我在angularjs和ionic-framework中创建了自定义指令下拉列表。在我的下拉列表项目将以模态弹出窗口打开,这是非常好的。

但是我保留了搜索输入框,其中有清晰的按钮输入框,如果我放ng-model='search'而按下按钮,那么它会非常好,但如果我放了功能并尝试从指令模块中删除它将无法正常工作

在模板中

ng-click="search=''"

在指令模块

<input type="search" ng-model="search" placeholder="select city...">
<button ng-show="search.length" ng-click="clearSearch()" class="customIcon button button-icon ion-close-circled input-button"></button>

那么它会给我错误

  

$ scope.search未定义

我只是非常混淆$ scope事情我也想知道我怎么能知道范围任何工具或什么

我还有另一个问题,我保持两个自定义指令相同,当第一个控件更改其值时,我想清除第二个指令中的选择,因为我正在做$ watch但我不明白我怎么能理解做

我的傻瓜 http://plnkr.co/edit/GxM78QRwSjTrsX1SCxF7?p=preview

1 个答案:

答案 0 :(得分:1)

我没有使用Ionic的经验,但这些类型的问题通常与原型继承在JS和AngularJS中的工作方式有关。

可以找到与Angular相关的原型继承的一个很好的解释here

通常可以通过将属性移动到对象中来解决此问题:

$scope.viewModel = {};

$scope.clearSearch = function() {
  $scope.viewModel.search = '';
};

然后在您需要的HTML中使用viewModel.search

<input type="search" ng-model="viewModel.search" placeholder="select city...">

演示: http://plnkr.co/edit/4SLfA1CjRWB1XazIhj9d?p=info