@ – one way binding
In directive:
scope : { name : "@name" }
In view:
name="{{nameFromParentScope}}">
= – two way binding
In directive:
scope : { name : "=name" },
link : function(scope) {
scope.name = "Changing the value here will get reflected in parent scope value";
}
In view:
name="{{nameFromParentScope}}">
& – Function call
In directive :
scope : { nameChange : "&" }
link : function(scope) {
scope.nameChange({newName:"NameFromIsolaltedScope"});
}
In view:
nameChange="onNameChange(newName)">
scope : { name : "@name" }
name="{{nameFromParentScope}}">
scope : { name : "=name" },
link : function(scope) {
scope.name = "Changing the value here will get reflected in parent scope value";
}
name="{{nameFromParentScope}}">
scope : { nameChange : "&" }
link : function(scope) {
scope.nameChange({newName:"NameFromIsolaltedScope"});
}
nameChange="onNameChange(newName)">
require 屬性符號
- (no prefix) - Locate the required controller on the current element. Throw an error if not found.
- ? - Attempt to locate the required controller or pass null to the link fn if not found.
- ^ - Locate the required controller by searching the element and its parents. Throw an error if not found.
- ^^ - Locate the required controller by searching the element's parents. Throw an error if not found.
- ?^ - Attempt to locate the required controller by searching the element and its parents or pass null to the link fn if not found.
- ?^^ - Attempt to locate the required controller by searching the element's parents, or pass null to the link fn if not found.
Ref.1: https://stackoverflow.com/questions/14908133/what-is-the-difference-between-vs-and-in-angularjs
Ref.2: https://docs.angularjs.org/api/ng/service/$compile
Ref.3: http://www.codeforeach.com/angularjs/angularjs-isolated-scopes-vs-vs
沒有留言:
張貼留言