javascript - Angular JS - 文本框未在独立范围内更新

标签 javascript angularjs

在我的 JS 文件中:

var app=angular.module("isolateScope",[]);

app.controller("attrScope",["$scope",function($scope){
    $scope.gem="ruby";    
}]);

app.directive("diffScope",function(){
   return{
       scope:{
           gemType:'@',
           twoWay:'=',
       },
       //template:'@scope:<input type="text" ng-model="gemType"/><br/><label>=Scope</label><input type="text" ng-model="twoWay"/>'
   } 
});

在我的 HTML 文件中:

 <div ng-controller="attrScope">
        <input type="text" ng-model="gem" />
        <div class="panel-group">
            <diff-scope gem-type="{{gem}}" two-way="gem">
                @scope:<input type="text" ng-model="gemType"/><br/><label>=Scope</label><input type="text" ng-model="twoWay"/>
                </diff-scope>
        </div>
    </div>

但是当输入父文本框时子文本框没有更新,也没有从父文本框加载值?

最佳答案

您可以在 html 中定义您的模板。 您必须使用 ng-transclude 并将指令的隔离范围添加到链接中的嵌入,并将具有隔离范围的 transcludedElement 添加到指令元素中。

这个blog post里面有很好的描述关于它。

请查看下面或此 fiddle 中的演示.

var app = angular.module("isolatedScopeApp", []);

app.controller("attrScope", ["$scope",
  function($scope) {
    $scope.gem = "ruby";
  }
]);

app.directive("diffScope", function() {
  return {
    scope: {
      gemType: '@',
      twoWay: '=',
    },
    transclude: true,
    link: function(scope, element, attrs, ctrl, transclude) {
      transclude(scope, function(clone, scope) {
        element.append(clone);
      });
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.5/angular.js"></script>
<div ng-controller="attrScope" ng-app="isolatedScopeApp">
  <input type="text" ng-model="gem" />
  <div class="panel-group">
    <diff-scope gem-type="{{gem}}" two-way="gem">
      @scope:
      <input type="text" ng-model="gemType" />
      <br/>
      <label>=Scope</label>
      <input type="text" ng-model="twoWay" />
    </diff-scope>
  </div>
</div>

关于javascript - Angular JS - 文本框未在独立范围内更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37135543/

相关文章:

javascript - 更改 iframe 的 src,然后重新加载 iframe

javascript - 覆盖 Chrome 中的 Javascript 文件

javascript - 如何在angularjs中拆分日期时间

javascript - 具有 HTML 格式的 AngularJS 动态行生成

php - Symfony2 RESTful API + AngularJS

javascript - 如何在不通过 HTTP 加载图像的情况下在 HTML 中显示 'Reload' 符号?

javascript - 如何在没有登录的情况下跟踪 Node js 应用程序中的用户事件?

javascript - 来自HTML图像的jsPDF导致pdf为空

javascript - Karma runner 不会运行所有文件

javascript - 设置和测试 UI 路由器