我有以下模板
<script type="text/x-handlebars" id="friends/new">
<label>First Name</label>
{{input value=firstName}}<br />
<label>Last Name</label>
{{input value=lastName}}<br />
<label>About</label>
{{textarea value=about}}<br />
<button {{action "create"}} {{bind-attr disabled=isInvalid}}>Create</button>
</script>
我将数据放入所有字段,然后单击“创建”按钮,该按钮将转到以下控制器
App.FriendsNewRoute = Ember.Route.extend({
model: function(){
return { firstName: "", lastName: "", about: ""}
}
});
App.FriendsNewController = Ember.Controller.extend({
needs: "friends",
isInvalid: true,
validForm: function(){
if(this.get('lastName') && this.get('firstName')){
this.set("isInvalid", false);
} else {
this.set("isInvalid", true);
}
}.observes('firstName','lastName'),
actions: {
create: function(){
var newFriend = Ember.copy(this.content);
console.log(newFriend);
}
}
});
调用this.get('lastName')
时,我在文本框中输入的内容是正确的。但是当我记录this.content
时,该值仍然是我在FriendsNewRoute
中设置的初始值。我需要做什么才能this.content
使用模板中的当前数据正确更新?
答案 0 :(得分:0)
你应该改变:
MakeApp.run(['$rootScope', '$templateCache', function ($rootScope, $templateCache) {
$rootScope.$on('$routeChangeStart', function (event, next, current) {
alert(current.templateUrl);
if (typeof (current) !== 'undefined') {
$templateCache.remove(current.templateUrl);
}
});
}]);
到
Ember.Controller