Thursday, 22 August 2013

Angulr js...data from one directive to another directive is not changing if use same parameter name

Angulr js...data from one directive to another directive is not changing
if use same parameter name

When i use same name for scope variable then data is not changing in
second directive and because of that second directive is not getting new
data in second time onwards. Following are more details.
Following is my parent directive.
<!-- Project Modal Window-->
<projectmodal project="project" projects="projects"
save-project-at-server="saveProject(project)"
launch-project-structure="launchProjectStructure(project)">
</projectmodal>
Following is scope variable for this ProjectModal.
scope: {
project: '=',
projects: '=',
saveProjectAtServer: '&',
launchProjectStructure: '&'
}
Following is second directive invoked by ProjectModal
<!--load view mode-->
<viewproject project="project" projects="projects"
launch-project-structure="launchProjectStructure({project:project})">
</viewproject>
Following is scope for view project.
scope: {
project: '=',
projects: '=',
launchProjectStructure: '&',
onClickEditProjectInfo: '&'
}
Following is watcher for viewproject
//Add watch event on projectId
scope.$watch('project', function (newVal, oldVal) {
console.log('view project watch project oldVal =' + oldVal
+ ', newVal = ' + newVal)
if (newVal!=undefined && !angular.equals(newVal,oldVal)) {
//first update scope with new project data
scope.project = newVal;
//Now see if more data is required to fetch from
server or can be get from cache.
getProject(newVal);
}
});
Somehow it works only first time. After that "project" object is not
changing in project view directive.
Please help.

No comments:

Post a Comment