首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ng-bind-html未按预期工作

ng-bind-html未按预期工作
EN

Stack Overflow用户
提问于 2014-09-02 05:51:12
回答 3查看 1.2K关注 0票数 0

a.html

代码语言:javascript
复制
<div ng-bind-html="htmlElement()"></div>

controller.js

代码语言:javascript
复制
$scope.htmlElement = function(){ 
  var html = '<input type="text" ng-model="myModel" />'; 
  return $sce.trustAsHtml(html);
}

但是,当我想获得文本输入的值时,

代码语言:javascript
复制
alert($scope.myModel);

它说myModel是个未知数。只有当我动态添加文本输入时,才会发生这种情况。

怎样才能得到文本输入的值?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-02 06:43:49

我建议您将这个DOM操作与指令一起使用。

在你的controllers.js

代码语言:javascript
复制
app.directive("myHtml", function(){
   return {
       restrict: 'E',
       template: '<input type="text" ng-model="myModel" />',
       link: function(scope, attr){
           scope.myModel = 'Input text here';
       }
   } 
});

app.controller('listCtrl', function($scope) {  

    $scope.showInputText = function(){
        alert($scope.myModel);
    }
});

在你的HTML

代码语言:javascript
复制
<div ng-controller="myCtrl">
    <my-html><my-html>
    Your input: {{myModel}}
    <button ng-click="showInputText()">Show Input Text</button>
</div>
票数 3
EN

Stack Overflow用户

发布于 2014-09-02 12:49:46

试试这个,http://plnkr.co/edit/A4HRCuTbJt21wEngH9HX?p=preview

代码语言:javascript
复制
   <div ng-bind-html="htmlElement()" compile-element></div>

……

代码语言:javascript
复制
    module.directive("compileElement", function($compile){
      return {
        link: function(scope,element) {
          scope.$watch(function(){
            return element.html();
          }, function() {
            $compile(element.contents())(scope);
          }); 
        }
      };
    });
票数 0
EN

Stack Overflow用户

发布于 2014-12-30 09:43:30

尝试将以下css添加到div /元素中

代码语言:javascript
复制
white-space: pre-wrap;
word-wrap: break-word;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25616680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档