javascript - 无法在 ng-click 函数上获取 ng-bind-html 下拉值

标签 javascript angularjs

我是Angularjs的新手,我可以在Jquery中做到这一点,但我想学习Angularjs

我有下拉菜单,我使用ng-bind-html来获取下拉值并将该值更新为ng-bind-html它工作正常。 但是当我从下拉列表中选择值并在控制台日志中对其进行控制台时,它显示为 null。

但是当我使用硬编码值更新下拉列表并选择该值时,它会正确记录在日志中。

HTML 代码:

<div ng-app="myApp">
<div ng-controller="addComplaintCtrl">
 <select class="form-control" id="product_name" name="product_name" ng-model="product_name" ng-bind-html="pdl">
     <!--<option value="">-Select-</option>
     <option value='00'>Other</option>-->
  </select>
  <input type="button" class="btn btn-primary btn-block" ng-click="complaintSubmitEvent();" value="Submit Complaint">
 </div> 

 </div>

Angular 代码:

<script>
  var app = angular.module('myApp',['ngSanitize']);

  app.controller("addComplaintCtrl",function($scope,$sce){

  $scope.pdl=$sce.trustAsHtml('<option value="">-Select-</option><option value="Sales" >Sales</option>');

  $scope.complaintSubmitEvent=function(){
        //alert(0);
        console.log($scope.product_name);

  }

  })
  </script>

下面是jsfiddle链接。 ng-bind-html

最佳答案

您必须编译 ng-bind-html 所做的更改,您可以创建一个类似的指令

app.directive('compile',function($compile, $timeout){
    return{
        restrict:'A',
        link: function(scope,elem,attrs){
            $timeout(function(){                
                $compile(elem.contents())(scope);    
            });
        }        
    };
});

$timeout 用于在 ng-bind-html 完成其工作后运行编译函数

现在你可以简单地将compile作为select的属性与ng-bind-html

<select class="form-control" id="product_name" name="product_name" ng-model="product_name" ng-bind-html="pdl" compile >

Working fiddle

关于javascript - 无法在 ng-click 函数上获取 ng-bind-html 下拉值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46924901/

相关文章:

angularjs - 在 Controller 之间共享数据[array]

javascript - map + parseInt - 奇怪的结果

javascript - JQuery悬停问题

javascript - 在 javascript 中加载 jQuery/ajax

javascript - 如何从一个 html 文件加载所有 CSS 和 JS?

javascript - Angular UI 路由器无法在 Chrome 应用程序上运行

javascript - 对 ng-options 的误解

javascript - 我需要帮助加载文件 symfony2,无法在 formbuilder 中找到输入名称

javascript - 从其他站点获取 JSON(P)

javascript - DOM元素和 Angular 元素之间的主要区别是什么