javascript - Difference between ways to declare a scope in a directive (ways shown inside) -
i'm new angularjs, javascript , html.
my question is: ¿what difference between 4 ways declare scope in directive?
i'm going show way , write think it. if i'm wrong or right, tell me in ordered way please.
this base in directive:
var app = angular.module('myapp', []); app.directive('mydirective', function() { return { scope: //here go 4 ways } }); first way:
scope: true what understand that:
a - new child scope created , child scope inherits parent scope surround it.
b - directive have access parent scope models.
c - possible insert values in scope. or scope meant give access inherited data?
second way
scope: { // no content, empty object } a - creates isolated scope.
b - scope can't access parent models.
c - although scope can't access parent scope, isolated scope can have child scopes.
third way
//nothing, not declaring scope attribute. fourth way
scope: {// content such data binding strategies} thanks. please let place share information related general question (so answers question), go further based on personal experience.
so summarized different types of creating scopes. forgot performance , why creating no isolating scopes can better.
isolating scope will:
- reduce amount of variables in different scopes.
- inheriting parent scope cause clone watchers, too.
- prevent using multiple directives on 1 element.
with isolated scopes can't this:
<div mydirective mydirective2></div> this lead angular exception.
if not isolating scope:
- maybe tons of inherited variables (can avoided
scope: false) - can use multiple directives @ same element
for example ngmodel,ngclick,ngblur ... doesn't isolate scope, because can use them on same element. this:
<input ng-model="somevalue" ng-blur="storeinput()"></input> this wouldn't possible if they'd isolate scope.
Comments
Post a Comment