Angualr js do form validation very verbose way but still you need to add more. $scope.familyForm.$setValidity(submit,false);

complete this using this reference

But don’t forget to pass valid condition for our new validation. I faced problem saving form i was’nt supplying the passing condition to the validation.

//this will make form whole form invalid.
//so, $scope.<form-name>.$valid  will be false

//if all your conditions are matched then make is valid.


$broadcast and $emit in angaular js.

  • $broadcast goes from top to bottom or parent to all children.
  • $emit travels from child to parent.
  • $on will get the message and act on it.

	data: 'all children come home'

	return 'coming';

	data: 'father take me home'

	return 'do it by your self';

create and destroy the scope in angaular

careating a new scope is simple var new_scope = scope.$new()

and destroy with $destroy

new_scope.$destroy() to stop memory leak due to scopes in angaular. It developer duty to handle created scope./

Here is good link for this: link

Watching for changes in angularjs there are following for this.

  • $watch

    ```javascript $scope.$watch(‘prop’,function(newValue, oldValue){



  • $watchGroup If we want to watch more than one property


    $scope.$watchGroup([‘propOne’,’prop2’],function(newValues, oldValues){

    }); ```

  • $watchCollection Two watch the array or complex data.

Angular wise choose for the function.

  • $digest is better than $apply.
  • $observe is faster than $watch. as $watch will run two to functions to complete the task one for comparision and then for the callback.

### Angular Testing —- 1. Testing it good for the project to gain confidance about the coding.

lets try to write testing for the following code directive.

  'use strict';
        restrict: 'E',
        scope: {
          product: '='
        templateUrl: 'camp_inst.html',
        link: linkFunction,
        controller: ['$scope', campaignInstruction],
        controllerAs: 'campIns'
       // bindToController: true

      function linkFunction(scope, element, attrs){


      function campaignInstruction($scope, offerFactory, advertiserFactory){
        /* jshint validthis: true */
        var vm = this;
        vm.someValues = [1,2,3,4];
        vm.offerTypes = offerFactory;


This directive has templateUrl with this.