So stellen Sie die Div-Breite mit ng-style ein


79

Ich versuche, die div-Breite dynamisch mit zu setzen, ng-styleaber es wird der Stil nicht angewendet. Hier ist der Code:

<div style="width: 100%;" id="container_fform" ng-controller="custController">
    <div style="width: 250px;overflow: scroll;">
        <div ng-style="myStyle">&nbsp;</div>
    </div>
</div>

Regler:

var MyApp = angular.module('MyApp', []);

var custController = MyApp.controller('custController', function ($scope) {
    $scope.myStyle="width:'900px';background:red";

});

Was vermisse ich?

Geigenlink: Geige

Antworten:


139

Die Syntax von ng-styleist nicht ganz das. Es akzeptiert ein Wörterbuch mit Schlüsseln (Attributnamen) und Werten (der Wert, den sie annehmen sollten, eine leere Zeichenfolge setzt sie nicht) und nicht nur eine Zeichenfolge. Ich denke, was Sie wollen, ist Folgendes:

<div ng-style="{ 'width' : width, 'background' : bgColor }"></div>

Und dann in Ihrem Controller:

$scope.width = '900px';
$scope.bgColor = 'red';

Dadurch bleibt die Trennung von Vorlage und Controller erhalten: Der Controller enthält die semantischen Werte, während die Vorlage sie dem richtigen Attributnamen zuordnet.


11
Wörterbuch der Schlüssel ... brachte mich zum Lächeln. Was für eine beredte Beschreibung für nur ein anderes JS-Objekt.
Steve K

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.