Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 指令中未定义范围变量_Javascript_Angularjs - Fatal编程技术网

Javascript 指令中未定义范围变量

Javascript 指令中未定义范围变量,javascript,angularjs,Javascript,Angularjs,我正在使用指令,我想在指令中使用范围变量,但它抛出了未定义的错误 我想循环使用固定号码?所以我就去了 这里是我得到的未定义错误 是否有任何其他方法可以避免循环次数过多 HTML: 您从未将items属性传递给指令,因此当指令尝试访问它时,它肯定是未定义的。您的my dir标记需要提供属性。尝试: <my-dir items={{items}} .... /> 您能显示您调用此指令的HTML片段吗?@AndrewCounts更新的问题请检查您的HTML是否正确?我没有看到您

我正在使用指令,我想在指令中使用范围变量,但它抛出了未定义的错误

我想循环使用固定号码?所以我就去了 这里是我得到的未定义错误

是否有任何其他方法可以避免循环次数过多

HTML:


您从未将items属性传递给指令,因此当指令尝试访问它时,它肯定是未定义的。您的my dir标记需要提供属性。尝试:

<my-dir 
    items={{items}}
.... />

您能显示您调用此指令的HTML片段吗?@AndrewCounts更新的问题请检查您的HTML是否正确?我没有看到您在HTML中添加items=。你能确保你的示例代码是正确的吗?如果是,那么解决方案是将items属性传递给标记。$scope.items=['a','b','c'];我不能使用控制器$scope.items=['a','b','c'];inside指令?使用隔离后,该指令无权访问$scope或其他控制器。整个隔离点是确保指令能够独立于其他指令、控制器等所做的操作对变量进行操作。如果不将变量传递给指令,它将无法访问它。而且,最重要的是,scope不是$scope
var app = angular.module('myApp',  ['ngAnimate']);

app.controller('MyCtrl', function($scope, $http) {
   $scope.items = ['a','b','c'];
    });

// add a directive
app.directive("myDir", function() {
  return {
    restrict: "E",
    scope: {
      items:"=",
      myTitle: "@",   // by value
      myHeight: "@",   // by value
      myWidth: "@",   // by value
      myColor: "@",   // by value
      myBgcolor: "@",   // by value
      myWidgetno: "@", // by reference
      myCollapseoption: "@", // by reference            
      save: "&"    // event
    },

    templateUrl:"widget.html", 

    replace: true,
    transclude: false,
    link: function (scope, element, attrs) {

        // show initial values: by-val members will be undefined
       console.log("items is " +scope.items);


        // change element just to show we can
        element.css("background", attrs.myBgcolor);
        element.css("color", attrs.myColor);
        element.css("width", attrs.myWidth+'px');
       // element.css("height", attrs.myHeight+'px');

    }
  }
});
<my-dir 
    items={{items}}
.... />