控制器为vm,点击ng
Controller as vm with ng-click
我正在尝试遵循John Papa的Angular Style Guide,但我无法使用ngClick
获得输入文件的模型数据。
当我尝试使用$scope
时,一切都很好。
这是Plnkr上的演示。
很高兴得到你的帮助。
在ng模型中,不是直接分配给vm,而是将其分配给vm.data,并将vm.data作为参数传递给ng-click="vm.saveEvent(vm.data)"
<form>
<fieldset>
<div class="form-group">
<label for="eventName">Event Name:</label>
<input id="eventName" type="text" data-ng-model="vm.data.name" placeholder="Name of your event"/>
</div>
<div class="form-group">
<label for="eventDate">Event Date:</label>
<input id="eventDate" type="text" data-ng-model="vm.data.date" placeholder="format (mm/dd/yyyy)"/>
</div>
<div class="form-group">
<label for="eventTime">Event Time:</label>
<input id="eventTime" type="text" data-ng-model="vm.data.time" placeholder="Time of your event"/>
</div>
<div class="form-group">
<label for="eventLocation">Event Location:</label>
<input id="eventLocation" type="text" data-ng-model="vm.data.location.addresss" placeholder="Address of your event"/>
</div>
<div class="form-group">
<input id="eventCity" type="text" class="input-small" data-ng-model="vm.data.location.city" placeholder="City"/>
<input id="stateProvince" type="text" class="input-small" data-ng-model="vm.data.location.province" placeholder="Province"/>
</div>
<div class="form-group">
<label for="eventImageUrl">Image:</label>
<input id="eventImageUrl" type="text" class="input-xlarge" data-ng-model="vm.data.imageUrl" placeholder="Url of image"/>
</div>
</fieldset>
{{vm.data.name}}
<img data-ng-src="{{vm.data.imageUrl}}"/>
<br/>
<br/>
<div class="form-group">
<button type="submit" class="btn btn-primary" data-ng-click="vm.saveEvent(vm.data)">Save</button>
<button type="button" class="btn btn-default" data-ng-click="vm.cancelEvent(vm.data)">Cancel</button>
</div>
</form>
控制器:
eventsApp.controller('EditEventController',
function EditEventController() {
var vm = this;
this.data = {};
vm.saveEvent = saveEvent;
function saveEvent(event) {
window.alert("event" + event.name + ' saved');
console.log(vm.data);
}
//vm.saveEvent = function(event) {
// window.alert("event" + event.name + ' saved');
//};
}
);
http://plnkr.co/edit/AxdA7vc70aTw3RojofVY?p=preview
ng-click="vm.saveEvent(vm.data)"不适用于Angular 1.4。
我的解决方案是使用控制变量名。例如"LoginController as loginctrl"
和<button ng-click="loginctrl.doLogin()">Login</button>
然后在我的控制下,我可以将其用于我的LoginController中的doLogin功能:
/* @ngInject */
function LoginController() {
/*jshint validthis: true */
var vm = this;
vm.title = 'Login';
function doLogin() {
...
}
相关文章:
- 我应该使用Ng提交还是点击表格
- 角度ng变化或ng点击选择can'不起作用
- 如何在所有ng点击事件AngularJS上启动一个方法
- 有没有添加一个ng点击到md背景
- Ng点击-如何进行行为单元测试
- 角度过滤器和ng点击不起作用
- OnsenUI中的ng点击事件不会在Android模拟器上触发
- angularjs ng基于点击时的数组值重复过滤器
- angularjs ng点击运行时标记不起作用
- Ng点击don´不起作用
- Ng点击记住单选按钮选择
- 如何在Angular Material中的md背景后面接收ng点击事件
- AngularJS:类的优选顺序=“”"并且ng点击=“"在标签中
- 点击ng后可以触发一个ng类
- 有角度的ng点击ng的内部重复总是得到相同的对象
- 控制器为vm,点击ng
- AngularJS-点击ng,在ng重复中的项目之间切换
- 默认点击ng-click angularjs中的第一个元素
- 通过点击ng-repeat访问li数据
- Angular:ng只点击ng重复中的元素子集