Angularjs 有角度的重复显示什么都没有

Angularjs 有角度的重复显示什么都没有,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,我正在尝试使用ng repeat显示列表。直接在html中使用时,它可以正常工作。但是,当我尝试使用指令插入相同的代码时,ng repeat什么也不做,甚至不显示一项 我尝试的是: 我在.html和.js文件中使用了相同的html——在html中没有问题,在指令no 我添加了说点什么,只是为了检查指令是否正确应用-是的,它是正确的 我尝试直接在指令中声明数组(值应该通过作用域传递)——行为没有变化 警报(评估[0].id)显示包含正确信息的弹出窗口 检查拼写和打字错误,但一切似乎都是正确的

我正在尝试使用ng repeat显示列表。直接在html中使用时,它可以正常工作。但是,当我尝试使用指令插入相同的代码时,ng repeat什么也不做,甚至不显示一项

我尝试的是:

  • 我在.html和.js文件中使用了相同的html——在html中没有问题,在指令no
  • 我添加了
    说点什么
    ,只是为了检查指令是否正确应用-是的,它是正确的
  • 我尝试直接在指令中声明数组(值应该通过作用域传递)——行为没有变化
  • 警报(评估[0].id)
    显示包含正确信息的弹出窗口
  • 检查拼写和打字错误,但一切似乎都是正确的
.js文件:

var app = angular.module('AngularDirectiveDemo', []);
(function () {
    var app = angular.module('AngularDirectiveDemo');
    app.directive('scSchedule', function () {
        //alert($scope.Appraisals[0]);
        var Appraisals = [
            { id: 2432, name: "Greatness" },
            { id: 2486, name: "Mediocrity" }
        ];
        alert(Appraisals[0].id);
        return {
            restrict: 'E',
            replace: 'true',
            template: '<div>'+
                 '<h1>Say Something Directive</h1><ul> <li ng-repeat="x in Appraisals">' +
                 '{{x.id}}<a href="#" ng-click="viewAppraisalDetails(x)">Details</a></li></ul><div>blanko</div></div>',
            controller: function ($scope) {
                $scope.viewAppraisalDetails = function (appraisalToView) {

                    console.log('viewing details for ' + appraisalToView.Id);

            }
        }

        };
    });

    angular.module('AngularDirectiveDemo').controller('scheduleCtrl',function($scope){
        $scope.Appraisals=[
            {id: 2432, name:"Greatness"},
            {id:2486, name:"Mediocrity"}
        ];
    });

}());
var-app=angular.module('AngularDirectiveDemo',[]);
(功能(){
var app=angular.module('AngularDirectiveDemo');
应用指令('scSchedule',函数(){
//警报($scope.evaluations[0]);
var评估=[
{id:2432,名字:“伟大”},
{id:2486,名字:“平庸”}
];
警报(评估[0].id);
返回{
限制:'E',
替换为:“true”,
模板:“”+
'说出一些指示
  • '+ “{x.id}
blanko”, 控制器:功能($scope){ $scope.viewApprovalDetails=函数(评估视图){ console.log('查看'+assessualtoview.Id'的详细信息); } } }; }); angular.module('AngularDirectiveDemo')。controller('scheduleCtrl',function($scope){ $scope.evaluations=[ {id:2432,名字:“伟大”}, {id:2486,名字:“平庸”} ]; }); }());
html文件:

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml" ng-app="AngularDirectiveDemo">
<head>
    <meta charset="utf-8" />
    <script type="text/javascript" src="../Scripts/jquery-1.9.1.min.js"></script>
    <SharePoint:ScriptLink name="sp.js" runat="server" OnDemand="true" LoadAfterUI="true" Localizable="false" />
    <script src="../Scripts/angular.js"></script>
   <!-- <script type="text/javascript" src="../Scripts/App.js"></script> -->
    <script src="../Codes/SampleDirective.js"></script>

    <title>Angular Directive Demo</title>
</head>
<body>
    <div ng-controller="scheduleCtrl">
        <h1>Hello world</h1>
        <ul>
            <li ng-repeat="x in Appraisals">{{x.id}}   {{x.name}}</li>
        </ul>

    </div>
    <sc-Schedule></sc-Schedule>
</body>
</html>

角度指令演示
你好,世界
  • {{x.id}{{{x.name}

结果:

您创建了局部变量评估,因此视图看不到它。它需要在一个范围内:

alert(Appraisals[0].id);
return {
    restrict: 'E',
    replace: 'true',
    scope: {
       Appraisals: '='
    }
    link: function(scope, element, attrs, tabsCtrl) {
      scope.Appraisals = Appraisals;
    },
    template: '<div>'+
警报(评估[0].id);
返回{
限制:'E',
替换为:“true”,
范围:{
评估:'='
}
链接:函数(范围、元素、属性、tabsCtrl){
范围。评估=评估;
},
模板:“”+

您创建了局部变量评估,因此视图看不到它。它需要在一个范围内:

alert(Appraisals[0].id);
return {
    restrict: 'E',
    replace: 'true',
    scope: {
       Appraisals: '='
    }
    link: function(scope, element, attrs, tabsCtrl) {
      scope.Appraisals = Appraisals;
    },
    template: '<div>'+
警报(评估[0].id);
返回{
限制:'E',
替换为:“true”,
范围:{
评估:'='
}
链接:函数(范围、元素、属性、tabsCtrl){
范围。评估=评估;
},
模板:“”+

sc时间表
替换
sc时间表
此外,您的指令不在
范围内,因此评估不在其范围内。谢谢。第二条意见解决了问题。您能将其作为答案发布,以便我可以接受吗?另外,为什么在指令内声明评估时它没有帮助?因为它仍然是sn不在范围内。它只是指令的一个局部变量。用
sc Schedule
替换
sc Schedule
。此外,您的指令不在
范围内,因此评估不在其范围内。谢谢。第二条评论解决了问题。您能否将其作为一个答案发布,以便我可以接受?另外,为什么在我撤销时它没有帮助指令内的clared评估?因为它仍然不在范围内。它只是指令的一个局部变量。