使用ng-click
更新Ionic/Angular中的视图时遇到严重困难。角度/离子ng-click不更新视图,但在模型中更新
我之前遇到类似的问题,但解决了它后面的this指导,这说明如果你的按钮在<label>
ng-click不起作用。
我想达到什么目的?
我正在开发一个移动应用程序,并希望允许用户在必要时编辑他们的详细信息。为了从最简单的开始,我开始尝试实现用户可以编辑其名称的功能。在下面的示例中,我试图在单击按钮时更改用户的名称。
奇怪的是当我console.log(Photos.name)
我得到正确的值,即(scope.user.name = "Jim"
),但视图不反映这种变化。
我的代码如下:
控制器
.controller('ProfileCtrl', function($scope, Photos) {
$scope.user = {
"name": Photos.name
}
$scope.changeName = function() {
Photos.changeName();
console.log(Photos.name)
};
})
厂:
.factory('Photos', function(){
var o = {
name : 'James'
}
o.changeName = function(){
o.name = 'Jim'
}
return o;
});
HTML 设置模板
这是该按钮的profile.html页面上更新用户的名称(见下文)
<ion-view view-title="Settings">
<ion-content>
<ion-list>
<div class="item item-input">
<span class="input-label">Change Profile Picture</span>
<button type="button" ng-click="changeName()">Add</button>
</div>
</ion-list>
</ion-content>
</ion-view>
配置文件模板
<ion-view view-title="My Profile">
<ion-content class="padding">
<div class="item item-body">
<p class="profile-details">
{{user.name}}
</p>
</div>
</ion-content>
</ion-view>
我经历了许多SO阅读答案和那些离子网页上,没有运气。从我读过的内容来看,我认为这可能与在儿童范围内设置价值有关,但这是打破它的事情,但我无法确定。
任何人都可以帮忙吗?
欢呼,让我试试 –
不幸的是,这不是它 –
糟糕。我担心它不会工作。 JavaScript中的字符串是不可变的。 'replace'只会创建一个新的。但是这里应该说的是:'$ scope.user = Photos'而不是'$ scope.user = {...}'(当然,这只是一个概念的快速证明,而不是最终的解决方案)。 – SkyWriter