HiveBrain v1.2.0
Get Started
← Back to all entries
patternjavascriptMinor

MVC partial views and AngularJS modules

Submitted by: @import:stackexchange-codereview··
0
Viewed 0 times
modulesangularjsmvcviewspartialand

Problem

I am using MVC+Angular. In MVC, I created partial views for search, listing, etc. I show them using:

@Html.Partial("_Search")

@Html.Partial("_Featured")

@Html.Partial("_Listing")


Previously each partial view had an ng-app and ng-controller.

Now I combined them all into one ng-app. I added ng-app to master page, and I just used the ng-controller in every partial view.


some ng-repeat goes here


Angular code:

angular.module("ProductListing", [])
.controller("Search", function ($scope,$templateCache, $http) {
    $(document).on("keyup", ".txtTempleSearch", function () {
        var searchTerm=$(this).val();
        $.get(configUrl + "SearchGrouped/" + searchTerm, function (data) {
            $scope.Results = JSON.parse(data)[0].result;
                $scope.$apply();
        });
    });
})
.controller('featured', function ($scope) {
    $.get(configUrl + 'Featured', function (data) {
        $scope.featuredTemples = data;
        $scope.$apply();
    });
})


Is this approach correct or is it better in terms of maintainability/performance/best practice to have a different ng-app for different partial views and use angular.bootstrap?

Solution

I think this is primarily opinion based, but in the AngularJS docs, there is the following:


Use this directive to auto-bootstrap an AngularJS application. The ngApp directive designates the root element of the application and is typically placed near the root element of the page - e.g. on the ` or tags.

Also, note that is not possible to have nested
ng-app`, so, merging the group related controllers into one unique module is a good thing.

Context

StackExchange Code Review Q#102471, answer score: 2

Revisions (0)

No revisions yet.