Anjularjss ng-options不工作选择

时间:2016-04-13 02:37:43

标签: javascript angularjs

我正在尝试使用ng-options填充带有一些数字的选择。这是我的代码:

   <!DOCTYPE html>
<html>

<head>
      <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
         <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>


  <style>
      p{
          margin-top: 50px;
          height:700px;
          width: 1400px;
          font-size:17px;  
      }



  </style>

        <script src="jscolor.js"></script>
</head>
<body>



       <div ng-app="myApp" ng-controller="editor">
        <label for="kys_font_size"> font size:</label>

        <select ng-model="kys_selected_font" id="fontsize" name="kys_font_size" ng-options="page for page in FontSize(1, 150)" ng-change="changeFont()">
            Color: <input type="color"    ng-model="ColorPicked">


           </select>   


            <p contenteditable="true"  id="content"   >


           </p>




      </div>







     <script>

       var app = angular.module('myApp',[]);
         app.controller('editor',function($scope){

             $scope.color = "black";

              $scope.selectedText = "";
             $scope.FontSize = function(start, end) {
                                  var size = [];
                                   for (var i = start; i <= end; i++) {
                                   size.push(i);
                                   }
                        return size;
                  };




                         $scope.changeFont = function(){
                            var newSpan = "<span id='one' style='font-size:'"+$scope.kys_selected_font+"'>  </span>"
                             $("#one").focus();
                             $("#content").append();
                             var spans = document.getElementsByTagName('span');

                            if($scope.selectedText!=""){
                                  for( i=0;i < spans.length;i++){


                              for( j=0;j < selectedText.length;j++){

                             var id = spans[i].id;
                          var   selectedId =  $scope.selectedText[j].id;
                             var  text = $("#"+id).clone().children().remove().end().text();
                            var fontSize = $("#"+id).css("font-size");         
                             var selectedinnerText =  $("#"+selectedId).clone().children().remove().end().text();;

                             if(fontSize == $scope.)

                                  if(id === selectedId){

                                   if(text === selectedinnerText){

                                           if(fontSize == $scope.kys_selected_font){

                                           }       
                                   else{
                                         $("#"+id).css("font-size",10+"px");
                                   }




                                   }
                                 else{

                                      var replacer = document.getElementById(id);
                                         var newElement = "<span style='font-size:10px;' id='one4'>"+selectedinnerText+"</span>";


                                        replacer.innerHTML = replacer.innerHTML.replace(selectedinnerText,newElement);

                                       }

                                   }


                              }
                       }


                   }


                       };


                     $("span").mouseup(function(){
                               var range = window.getSelection().getRangeAt(0);
                             content = range.cloneContents();
                             var select = content.querySelectorAll('span'); 
                                    $scope.selectedText = select;

                     });  




                 });








     </script>
</body>

</html>

选择始终为空。

1 个答案:

答案 0 :(得分:2)

您尚未关闭控制器。在});功能后添加$scope.changeFont

另外,请在发布问题之前格式化您的代码。对于试图帮助你的人来说,这是一个噩梦,它可以帮助你找到这样的问题。

修改

$scope.changeFont功能中,您拥有此行if(fontSize == $scope.)。我认为你希望它是if(fontSize == $scope.FontSize)。我在下面的代码段中对其进行了更改,并填充了<select>$scope.changeFont是否按预期工作,我不知道,这不属于这个问题的范围。

此外,在您的HTML中,您需要移动<input> <select>

<!DOCTYPE html>
<html>

<head>
  <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>

  <style>
    p {
      margin-top: 50px;
      height: 700px;
      width: 1400px;
      font-size: 17px;
    }
  </style>

  <!--<script src="jscolor.js"></script>-->
</head>

<body>

  <div ng-app="myApp" ng-controller="editor">
    <label for="kys_font_size">font size:</label>

    <select ng-model="kys_selected_font" id="fontsize" name="kys_font_size" ng-options="page for page in FontSize(1, 150)" ng-change="changeFont()">
    </select>
    Color: <input type="color" ng-model="ColorPicked">
  </div>

  <script>
    var app = angular.module('myApp', []);
    app.controller('editor', function($scope) {

      $scope.color = "black";

      $scope.selectedText = "";
      $scope.FontSize = function(start, end) {
        var size = [];
        for (var i = start; i <= end; i++) {
          size.push(i);
        }
        return size;
      };

      $scope.changeFont = function() {
        var newSpan = "<span id='one' style='font-size:'" + $scope.kys_selected_font + "'>  </span>"
        $("#one").focus();
        $("#content").append();
        var spans = document.getElementsByTagName('span');

        if ($scope.selectedText != "") {
          for (i = 0; i < spans.length; i++) {

            for (j = 0; j < selectedText.length; j++) {

              var id = spans[i].id;
              var selectedId = $scope.selectedText[j].id;
              var text = $("#" + id).clone().children().remove().end().text();
              var fontSize = $("#" + id).css("font-size");
              var selectedinnerText = $("#" + selectedId).clone().children().remove().end().text();;

              if (fontSize == $scope.FontSize)
                if (id === selectedId) {
                  if (text === selectedinnerText) {
                    if (fontSize == $scope.kys_selected_font) {

                    } else {
                      $("#" + id).css("font-size", 10 + "px");
                    }
                  } else {

                    var replacer = document.getElementById(id);
                    var newElement = "<span style='font-size:10px;' id='one4'>" + selectedinnerText + "</span>";


                    replacer.innerHTML = replacer.innerHTML.replace(selectedinnerText, newElement);
                  }
                }
            }
          }
        }
      };


      $("span").mouseup(function() {
        var range = window.getSelection().getRangeAt(0);
        content = range.cloneContents();
        var select = content.querySelectorAll('span');
        $scope.selectedText = select;
      });
    });
  </script>
</body>

</html>