Heu... in the code/html you have shared, you only create the directive
areaSceneButtonBar but you don't show the usage.
Missing something in your post?
On Wednesday, December 3, 2014 9:59:00 PM UTC+1, siegeld wrote:
>
> I've created a directive that for some reason the link function only gets
> called once per app lifecycle, and that the scope in the directive appears
> shared when I route to different pages. Please see the directive code
> below:
>
> lutronDirectives.directive('areaSceneButtonBar', ['LutronServerService',
> function(LutronServerService) {
> var linker = function(scope, element, attributes) {
> scope.scenes = [];
> scope.model = 0;
> for (var i = 0; i < parseInt(scope.maxScenes); i++) {
> scope.scenes.push({name: "Scene " + i, number: i.toString()});
> }
> var area = LutronServerService.getLutronArea(scope.integrationId);
> if (area != null)
> scope.scenes =
> LutronServerService.getLutronArea(scope.integrationId).scenes;
> else
> scope.scenes = [];
> scope.click = function(scene) {
> LutronServerService.setAreaScene(scope.integrationId, scene);
> scope.model = scene;
> }
> scope.$on('AreaEvent', function(event, obj) {
> if (obj.integrationId == scope.integrationId &&
> obj.actionNumber == "6") {
> scope.deviceLevel = parseInt(obj.parameter)
> scope.model = obj.parameter;
> scope.$apply();
> }
> });
> LutronServerService.queryAreaScene(scope.integrationId);
> }
> return {
> restrict: 'E',
> scope: {
> integrationId: '=',
> maxScenes: '=',
> },
> templateUrl: 'partials/areaSceneButtonBar.html',
> link: linker
> }
> }]);
>
> Please also see the templateUrl here:
>
> <div class="btn-group">
> <label ng-repeat="scene in scenes" class="btn btn-primary"
> ng-model="model" btn-radio="scene.number"
> ng-click="click(scene.number)">
> {{scene.name}}
> </label>
> </div>
>
> You will notice that the template create a number of bootstrap radio
> buttons.
>
> So - what am I doing wrong? Why doesn't the link function get run each
> time I create a new directive?
>
> Very puzzled...
>
> Thanks,
>
> David
>
--
You received this message because you are subscribed to the Google Groups
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.