Angularjs 隔离作用域中的绑定控制器属性
我试图了解AngularJS指令和范围绑定。我宁愿给出我的代码,然后问问题: 以下是我的指令定义:Angularjs 隔离作用域中的绑定控制器属性,angularjs,binding,directive,Angularjs,Binding,Directive,我试图了解AngularJS指令和范围绑定。我宁愿给出我的代码,然后问问题: 以下是我的指令定义: '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;
'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;
});}());
这是我的html:
<!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>
但是不起作用。如何做到这一点 我不确定双向绑定是否适用于控制器属性,但正确的语法应该是
validationFlag="store.validationOnSubmit"
StoreController将初始化两次。一次在body元素上,一次在指令上。为避免混淆,您应该从指令中删除控制器,如果需要访问控制器,请使用
require
属性。我应该在require属性中指定什么?require=“StoreController”?并接受它作为指令函数的第四个参数。不,您需要定义指令。您可以使用ngController
scope : {
validationFlag : '=validationFlag'
}
validationFlag="store.validationOnSubmit"