javascript - Angularjs - data binding not working with controller -



javascript - Angularjs - data binding not working with controller -

i developing app uses bootstrap (v3.2.0) angularjs (v1.2.26), want create set of columns changable via dropdown.

i have got dropdown info binding ok, failing alter bootstrap responsive column classes when user selects different number of columns in dropdown.

this fiddle shows code far.

the html...

<div data-ng-app=""> <div class="container-fluid"> <nav class="navbar navbar-default" role="navigation"> <div class="container-fluid"> <!-- brand , toggle grouped improve mobile display --> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> <span class="sr-only">toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <span class="navbar-brand navbar-collapse-header">header</span> </div> <!-- collect nav links, forms, , other content toggling --> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav navbar-right"> <li data-ng-controller="columncontroller" id="columndropdown" class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">columns: {{columnlayout.value}} <span class="caret"></span></a> <ul class="dropdown-menu" role="menu"> <li data-ng-repeat="layout in columnlayouts"> <a data-ng-click="changelayout(event)" href="#" class="portlet-column-number">{{layout.text}}</a> </li> </ul> </li> </ul> </div> <!-- /.navbar-collapse --> </div> <!-- /.container-fluid --> </nav> </div> <div class="row"> <div data-ng-controller="columncontroller" data-ng-class="getlayoutclass()"> <div class="panel panel-default"> <div class="panel-heading mo-product-header">header 1</div> <div class="panel-body">more content</div> <div class="panel-footer">layout class {{getlayoutclass()}}</div> </div> </div> <div data-ng-controller="columncontroller" data-ng-class="getlayoutclass()"> <div class="panel panel-default"> <div class="panel-heading mo-product-header">header 2</div> <div class="panel-body">some other content</div> <div class="panel-footer">layout class {{getlayoutclass()}}</div> </div> </div> <div data-ng-controller="columncontroller" data-ng-class="getlayoutclass()"> <div class="panel panel-default"> <div class="panel-heading mo-product-header">header 3</div> <div class="panel-body">some content</div> <div class="panel-footer">layout class {{getlayoutclass()}}</div> </div> </div> </div> </div>

and js...

function columncontroller($scope) { $scope.columnlayouts = [{ value: 3, text: "reset", layoutclass: "col-sm-6 col-md-4" }, { value: 1, text: "1", layoutclass: "col-sm-12" }, { value: 2, text: "2", layoutclass: "col-sm-6" }, { value: 3, text: "3", layoutclass: "col-sm-4" }]; $scope.changelayout = function () { $scope.columnlayout = this.layout; } $scope.getlayoutclass = function(){ homecoming $scope.columnlayout.layoutclass; } $scope.columnlayout = $scope.columnlayouts[0]; }

update:

ok turns out should have added 'columncontroller' 1 element , in case element works best wrapper other elements.

however, think farther improve create separate controller navigation , broadcast messages change, in case have columncontroller hear messages column changes , repsond them alter model driving column layout.

the problem set many data-ng-controller="columncontroller". don't need add together every tag utilize angular binding {{}} or ngrepeat. need 1 on wrapping container. example:

<div data-ng-app="" data-ng-controller="columncontroller"> ... </div> demo: http://jsfiddle.net/pykm0tkv/25/

javascript angularjs twitter-bootstrap data-binding

Comments

Popular posts from this blog

xslt - DocBook 5 to PDF transform failing with error: "fo:flow" is missing child elements. Required content model: marker* -

mediawiki - How do I insert tables inside infoboxes on Wikia pages? -

Local Service User Logged into Windows -