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