Angularjs ng模型未暴露在指令之外

Angularjs ng模型未暴露在指令之外,angularjs,Angularjs,我在表单中使用角度手风琴指令。不幸的是,输入字段值内的模型无法在指令外公开或显示。不确定哪一部分是错的 Fiddler链接: Html function myCtrl($scope) { $scope.form = {}; } <form ng-controller="myCtrl"> 引导手风琴指令 {{form | json}} {{form | json}} 文本: 日期: {{form | json}} 文本: 编号: function myCtrl($sco

我在表单中使用角度手风琴指令。不幸的是,输入字段值内的模型无法在指令外公开或显示。不确定哪一部分是错的

Fiddler链接: Html


function myCtrl($scope) {
    $scope.form = {};
}
<form ng-controller="myCtrl">
引导手风琴指令 {{form | json}} {{form | json}} 文本:
日期: {{form | json}} 文本:
编号:
function myCtrl($scope) {
    $scope.form = {};
}
<form ng-controller="myCtrl">
指示

directive("btstAccordion", function () {
    return {
        restrict: "E",
        transclude: true,
        replace: true,
        scope: {}, // <= isolated scope
angular.module(“btst”,[])。
function myCtrl($scope) {
    $scope.form = {};
}
<form ng-controller="myCtrl">
指令(“BTSTACORDION”,函数(){ 返回{ 限制:“E”, 是的, 替换:正确, 作用域:{}, 模板: "", 链接:函数(范围、元素、属性){ //给这个元素一个唯一的id var id=element.attr(“id”); 如果(!id){ id=“btst acc”+范围$id; 元素属性(“id”,id); } //在手风琴切换元素上设置数据父级 var arr=element.find(“.accordion toggle”); 对于(变量i=0;i
有几个问题。首先,必须在作用域上定义
表单
对象。因为您希望在
btstAccordion
指令之外看到它(请参见

function myCtrl($scope) {
    $scope.form = {};
}
<form ng-controller="myCtrl">
然后在HTML中使用该控制器:

你也可以

  • 删除隔离作用域
  • scope.form
    对象作为参数传递给指令
  • function myCtrl($scope) {
        $scope.form = {};
    }
    
    <form ng-controller="myCtrl">
    

    第一种方法的演示

    您在哪里定义
    表单
    对象?@Ozrix我应该在哪里定义它?我希望在任何输入中填充值后自动填充它,但它没有。感谢您的提示。我想使用第二种方法,因为我想为BTSTACCRDION创建一个单独的作用域,以供进一步讨论配置。你能不能也在第二种方法上做一个演示?请注意,
    btstAccordion
    现在有了
    作用域:{form:“=”}
    和HTML中的
    ,引用
    $scope.form
    。这就是将内容传播到独立作用域的方式。如果打开开发工具,可以看到在键入时,指令会在控制台中输出值
    function myCtrl($scope) {
        $scope.form = {};
    }
    
    <form ng-controller="myCtrl">