我正在尝试使用AngularJS指令和范围绑定。我宁愿给我的代码,然后问问题:
这是我的指令定义:
$(document).ready(function() {
$('#btn1').click(function() {
$('li').last().after('<li>' + $( "#txt1" ).val() + '</li>');
});
});
这是我的HTML:
'use strict';
(function(){
var app = angular.module('gemStore', []);
var gem = {name:"Pearl",price:22.5 };
app.controller("StoreController",function(){
var self = this;
self.product = gem;
self.validateOnSubmit="myForm";
});
app.directive("requireOnSubmit",function(){
var directiveDefinitionObject = {
restrict:'A',
scope : {
validationFlag : '='
},
link : function(scope,ele,attr){
console.log(scope.validationFlag);
},
controller : "StoreController",
controllerAs : "store",
bindToController : true
};
return directiveDefinitionObject;
});}());
现在我想在控制器上使用validationFlag绑定validationOnSubmit属性,它应该是双向绑定。 我试过添加
<!DOCTYPE html>
<html ng-app="gemStore">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body ng-controller="StoreController as store">
<div>
<h3>{{store.product.name}} </h3> <h3>{{store.product.price}} </h3>
</div>
<form name="myForm">
<input type="text" name="test" require-on-submit />
</form>
</body>
<script type="text/javascript" src="resources/js/angular.min.js"></script>
<script type="text/javascript" src="app.js"></script>
并在指令中:
<input type="text" name="test" require-on-submit validationFlag="validationOnSubmit"/>
但是没有用。怎么做到这一点?
答案 0 :(得分:0)
我不确定2路绑定是否适用于控制器属性,但正确的语法是
validationFlag="store.validationOnSubmit"
StoreController将初始化两次。一旦使用body元素,一次使用指令。为避免混淆,您应该从指令中删除控制器,如果需要访问控制器,请使用require
属性。