Angular.js在某个页面中将元素添加到元素

时间:2016-01-11 15:07:18

标签: javascript angularjs

当我在页面post上时,我正尝试将课程#wrap添加到我的div [{1}}。这就是我所拥有的:

$ routeProvider

/post

控制器

when('/post', {
    templateUrl : 'views/post.php',
    controller  : 'postCtrl'
})

HTML

carolvaladares.controller('postCtrl', function($scope) {
    $scope.post = true;
});

<div id="wrap" ng-class="{true: 'post'}[post]"> 时,/post$scope.post。如果true$scope.post,请将课程true添加到post

问题是,当我转到#wrap时,除非我手动使用/post,否则它不会读取$scope.post

提前致谢。

- 已编辑 -

ng-controller="postCtrl"$scope.post上使用true时,{{post}}会返回/post。我仍然无法使用ng-class

- 已编辑 -

问题仍然存在,因为#wrap已超出我的ng-view。所以我想我想要做的事情,我试图做的事情是不可能的。

5 个答案:

答案 0 :(得分:1)

我认为问题出在你的HTML上:

{{1}}

应该有用。

答案 1 :(得分:0)

尝试

syntax error, unexpected ',', expecting kEND

另外不要忘记添加ng-controller

答案 2 :(得分:0)

ng-class的工作原理如下:

ng-class="{'classNameToApply': angularExpression}"

&#39; classNameToApply&#39;将在angularExpression评估为真实的事情时应用。

因此,在您的情况下,要应用&#39; post&#39;的课程,您会这样做 <div id="wrap" ng-class="{'post': post}">

答案 3 :(得分:0)

<div id="wrap" ng-class="{true: 'post'}[post]">

您为ng-class提供的声明应该有效,您是否可以将post变量更改为其他内容,以检查其是否正常工作:

<div id="wrap" ng-class="{true: 'post'}[someValue]">

除此之外,您还可以尝试以下其他解决方案:

Sol1:

<div id="wrap" ng-class="{'post': post}">

<强> SOL2

<div id="wrap" ng-class="post ? 'post' : 'somethingelse' }">

答案 4 :(得分:0)

我建议你尝试这样的事情:

when('/post', {
    templateUrl : 'views/post.php',
    controller  : 'postCtrl',
    activetab: 'post'
})

并添加:

<div id="wrap" ng-class="{post: $route.current.activetab == 'post'}"">