我的离子应用程序中有一个带有ng-model属性的输入框。 Runnable
标记内的代码:
try
{
using(FBConnection con = new FBConnection('connectionstringhere'))
{
con.Open();
using(FBCommand cmd = FBCommand("qryString",con))
{
cmd.Parameters.Add("paramSql", FbDbType.Date).Value ="somevalue";
cmd.CommandType = CommandType.Text;
using(FBDatareader rdr = cmd.ExecuteReader())
{
while(rdr.Read())
{
//some code here
}
}
}
}
}
catch(FBException ex)
{
MessageBox.Show(ex.Message);
}
在页脚栏中,我有这个:
ion-content
警报结果未定义。
注意:当我将<ion-content class="padding">
<input ng-model="myNumber" type="number" placeholder="Enter number">
</ion-content>
放入<div class="bar bar-footer bar-balanced" style="background-color: #00368C !important; color: #fff;">
<div class="title">
<button ng-click="submit(myNumber)" class="button button-clear">Submit</button>
</div>
</div>
时,它可以正常工作。 (这意味着js代码工作正常)
有什么想法吗?
答案 0 :(得分:4)
您的问题背后的原因是,ion-content
directive does create a child scope原型继承自父作用域。因此,将myNumber
放入输入ng-model
确实会添加到ion-content
的范围内,这与控制器myNumber
数字范围变量不同。
为了使其正常工作,您需要在定义dot rule
时遵循ng-model
,以便原型继承规则得到遵循(它适用于引用类型变量)。
因此,在控制器内创建一个新对象,并将所有ng-model变量分配到其中。如下所示
$scope.model = {};
然后将您想要使用的所有属性放在$scope.model.myNumber
&amp;在视图中使用它时,请使用model.myNumber
<强>标记强>
<ion-content class="padding">
<input ng-model="model.myNumber" type="number" placeholder="Enter number">
</ion-content>
<div class="bar bar-footer bar-balanced" style="background-color: #00368C !important; color: #fff;">
<div class="title">
<button ng-click="submit(model.myNumber)" class="button button-clear">Submit</button>
</div>
</div>
详细说明可在this answer
中找到更优雅的方法是使用controllerAs
方法。
答案 1 :(得分:0)
一个更好,更简单的解决方案,使用<ion-header-bar>
或<ion-footer>
并将所有固定的内容放在那里-然后将所有代码保留在同一控制器中。