javascript - 为什么我的范围不显示指令?

标签 javascript angularjs angularjs-directive angularjs-scope

我正在使用自定义 Controller 创建指令并测试范围。我想测试该指令是否具有我的索引页的范围,但 ng-show 不起作用。

html

<div class="main">
<div ng-controller="rl">

<book-genres></book-genres>
<review-form ng-show="reviewFormCtrl.rating == 1"></review-form>
<input ng-click="reviewFormCtrl.rating = 3" type="button" value="Test" /> 

</div>

</div>

部分:

<div>
    Review Forms : {{ rating }}

</div>

Controller :

myApp.controller('rl', function(){

});

myApp.directive('reviewForm',  function(){
    return {
        restrict: 'E',
        templateUrl: 'partials/review-form.html',
        replace: true,
        scope: true,
        controller: function($scope){
                $scope.rating = 1;
        },
        controllerAs: 'reviewFormCtrl'
    };
});

最佳答案

由于您使用的是 Controller 作为语法(例如 controllerAs: 'reviewFormCtrl'),因此您应该将评级附加到 Controller 而不是范围。

这应该有效

myApp.directive('reviewForm',  function(){
  return {
    restrict: 'E',
    templateUrl: 'partials/review-form.html',
    replace: true,
    scope: true,
    controller: function(){
      this.rating = 1;  //change here
    },
    controllerAs: 'reviewFormCtrl'
  };
});

关于javascript - 为什么我的范围不显示指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40185866/

相关文章:

AngularJs - 删除所有基于类名的指令

javascript - 下一步.js。 docker 镜像所需的文件

asp.net - 哪种框架比 Ja​​vaScript 更适合与 ASP.NET 一起使用?

javascript - Intl.Collat​​or 和带有数字选项的自然排序不正确地使用十进制数排序

java - HTTP 状态 403 - 在请求参数 '9ee6949c-c5dc-4d4b-9d55-46b75abc2994' 或 header '_csrf' 上发现无效的 CSRF token 'X-CSRF-TOKEN'

javascript - 如何在 AngularJS 中使用指令为 input.$error 对象设置观察者

javascript - 在指令链接功能中动态添加 ng-click

javascript - 使用 javascript 展开/折叠 zk 面板

javascript - 我应该尽可能避免使用 JS 而使用 CSS 吗?

javascript - 当在 angular 1.4.0-rc2 中与 ng-animate 一起使用时,ng-repeat 仍然显示已删除的项目