angularjs $scope vs var

Question is when to use $scope vs var and vice versa?

Ans: Answer is very simple and must be followed.

When You want two way binding or your variable is used in the UI part use $scope otherwise var.

For example:


var a = 10;

$scope.b = x * 5;

{{x}} - undefined

{{y}} - 50


So the conclusion is if your variable not interact to view part then it must be declared as var.
 
 
 
 

AngularJS App Structure

I have created many applications based on AngularJS and Structure what I follows is:

testapp (Root folder of App)

    - js
         - controllers
         - services
         - directives
    - lib
         - angular.min.js
         - jquery.min.js
         - -- many more third party libraries
    - views
         - login
           - login.html
         - my-profile
           - profile.html
    - i18n
         - en.jsom
    - images
        - logo.png
    - css
        - bootstrap.min.css
        - custom.css
    - fonts
        - -- all font files --
    - data
        - any default data json files
    - app.js
    - index.html

jQuery select2 editable with dynamic data

Your Javascript code:

EmpType.getList(function(response){
            $scope.empTypes=response.data;
            var typesArr = new Array();
            for (var int = 0; int <$scope.empTypes.length; int++) {
                var jsonObj = {
                        "id": $scope.empTypes[int].id,
                        "text": $scope.empTypes[int].name
                };
                typesArr[int] = jsonObj;
            }
           
            $("#empTypes").select2({
                createSearchChoice:function(term, data) {
                    if ($(data).filter(function() {
                        return this.text.localeCompare(term)===0;
                    }).length===0)
                    {return {id:term, text:term};}
                },
                data:typesArr
            });
           
        });
 
Your HTML code:
 

<input type="text" name="empTypes" id="empTypes"
                    class="form-control" />
 
and don't forget to include below files:
 
    <link rel="stylesheet" href="css/select2.css" />
    <link rel="stylesheet" href="css/select2-bootstrap.css"/> 
    <script type="text/javascript" src="lib/select2.min.js"></script>

jquery file upload


Use below javascript function:


function uploadFile(fileObj) {
    var formData = new FormData();
    formData.append("file", fileObj.files[0]);
   
    var url = "sv/upload-file.php?action=upload-image";

    $.ajax({
        type : "POST",
        url : url,
        cache : false,
        contentType : false,
        processData : false,
        data : formData,
        success : function(json) {
            console.log(json);   
       },
        error : function (err){
            console.log(json);
        }
    });
}


And in Html code:

<input type="file" onchange="uploadFile(this)" />


Write your server side code in php, java or any other language.

If any doubt ask in comments.