Angularjs $scope.watch不';t在离子框架中工作
$scope.watch在ionic框架中不起作用 我在爱奥尼亚设计了一些飞片。它不会工作。同样的代码在空白测试应用程序和angularjs上正常工作 我的htmlAngularjs $scope.watch不';t在离子框架中工作,angularjs,ionic-framework,Angularjs,Ionic Framework,$scope.watch在ionic框架中不起作用 我在爱奥尼亚设计了一些飞片。它不会工作。同样的代码在空白测试应用程序和angularjs上正常工作 我的html <div class="bar bar-header bar-royal"> <div class="h1 title">Hotel search</div> </div> <ion-view> <ion-content> <h4
<div class="bar bar-header bar-royal">
<div class="h1 title">Hotel search</div>
</div>
<ion-view>
<ion-content>
<h4 style="margin-top:100px;color:#116262;margin-left:10px;font-weight:bold"><i class="icon ion-edit"></i> Request Form</h4>
<div class="list" style="margin-top:15px;">
<label class="item item-input item-select">
<div class="input-label" style="font-weight:bold">
City
</div>
<select ng-model="formData.city">
<option value="Chennai">Chennai</option>
<option value="Delhi">Delhi</option>
<option value="Mumbai">Mumbai</option>
<option value="Goa">Goa</option>
</select>
</label>
<label class="item item-input item-stacked-label">
<span class="input-label" style="font-weight:bold">CheckIn</span>
<input type="date" ng-model="formData.checkIn" value="{{formData.checkIn | date:'yyyy-MM-dd'}}">
</label>
<label class="item item-input item-stacked-label">
<span class="input-label" style="font-weight:bold">checkOut</span>
<input type="date" ng-model="formData.checkOut" value="{{formData.checkOut | date:'yyyy-MM-dd'}}">
</label>
<label class="item item-input item-select">
<div class="input-label" style="font-weight:bold">
Rooms
</div>
<select ng-model="formData.room">
<option value="1" ng-selected="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</label>
<label class="item item-input item-select">
<div class="input-label" style="font-weight:bold">
Adults
</div>
<select ng-model="formData.adult">
<option value="1" ng-selected="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</label>
<div class="row center" style="margin-top:20px;">
<button class="button button-outline button-block button-royal" ng-click="submit(formData)" style="text-align:center;">
Search
</button>
</div>
{{formData}}
<input type="text" ng-model="useStars"/>
{{fooChanges}}
</div>
</ion-content>
</ion-view>
上面的代码有什么问题。。我试了很多次。它不起作用。如果你有其他想法的话???在你的按钮中,你正在传递formData作为参数
<button class="button button-outline button-block button-royal" ng-click="submit(formData)" style="text-align:center;">
Search
</button>
在这里,如果发生某个事件,在表单angularjs本身创建范围变量之前不需要$scope
但是没有发生任何事件,因此PlayCtrl无法理解$scope.formData,因此请尝试将事件设置为appeare或尝试理解
因此,这将有助于双向数据绑定如评论中所述,通过以下操作解决了问题:
<input type="text" ng-model="$parent.useStars"/>
但是,避免出现此问题的最佳方法是:始终使用像
$scope.data.userStarts这样的中间对象。因此,您永远不需要使用$parent
技巧,这在Angular中称为点表示法,这是由于javascript继承的限制。您可以将手表重写为:$scope.$watch('useStars',函数(值){alert('');},true);我也试过这个…它不起作用…怎么样?或者(以防万一)。谢谢你@Walfrat它使用$parent工作…非常感谢。。
.controller('PlaylistsCtrl', function($scope,$state) {
formData ={};
formData.checkIn = new Date();
formData.checkOut= new Date();
formData.checkOut.setDate($scope.formData.checkOut.getDate() + 1);
formData.room = 1;
formData.city = 'Chennai';
formData.adult = 1;
$scope.useStars = 'balakumaran';
$scope.fooChanges = 1;
$scope.$watch(function () {
return {
useStars : $scope.useStars,
$state.go('app.search',{formData:formData});
}
},function (value) {
alert('');
},true);
$scope.submit = function(formData){
$state.go('app.search',{formData:formData});
}
});
<input type="text" ng-model="$parent.useStars"/>