1

У меня есть TabbedBar, который содержит ярлыки, и внутри него есть метка, свойство enable которой мне нужно изменить в файле .js через кодирование. Я попытался установить идентификатор этой метки и использовал. $.lblProf.enabled = false; в .js файл. Его ошибка метания:Титановый сплав - невозможно отключить Ярлык внутри Tabbedbar с использованием id

Undefined is not an object(evaluating '$.lblProf.enabled = false')

demo.xml

<TabbedBar id="tabbedBar" platform="ios" backgroundColor="#369" top="44dp" height="30dp" width="300" index="0" onClick="tabBarClick"> 
    <Labels> 
     <Label>Details</Label> 
     <Label>Photos</Label> 
     <Label>Documents</Label> 
     <Label id="tabProfile">Profile</Label>       
    </Labels> 
</TabbedBar> 

demo.js

$.tabProfile.enabled = true; 

Если я пытаюсь отключить непосредственно

т.е.
<Label id="lblProf" enabled="false"> 

оборотный штраф.

+1

Вам не хватает идентификатора в элементе Labels в demo.xml? – visola

+0

Спасибо за ответ visola. Так что, даже если я добавляю id в элемент Labels, как получить доступ к lblProf в demo.js? –

+0

Похоже, вы поступаете правильно. Может быть, у вас пропало что-то еще. Это все ваш код? Вам не хватает некоторых элементов, таких как «Сплав» или «Окно»? Все образцы, которые я видел, имеют их. – visola

ответ

0

Как указано в @visola, вашим этикеткам нужен идентификатор, чтобы получить доступ к ним программно. В противном случае сплав дает им автогенерированный идентификатор, который обычно бесполезен для людей.

XML

<TabbedBar id="tabbedBar" platform="ios" backgroundColor="#369" top="44dp" height="30dp" width="300" index="0" onClick="tabBarClick"> 
    <Labels id='labelsList'> 
     <Label id='details'>Details</Label> 
     <Label id='photos'>Photos</Label> 
     <Label id='documents'>Documents</Label> 
     <Label id='tabProfile'>Profile</Label>       
    </Labels> 
</TabbedBar> 

Что касается присвоения tabProfile, $ является объектом верхнего уровня иерархии на стр. Итак, $.tabProfile не существует. Вот почему его изменение не имеет никакого эффекта. Вам нужно еще глубже перейти на страницу $.TabbedBar.Labels.Label. С учетом этого Label не имеет enabled. Таким образом, ваше приложение выбрасывает ошибку undefined.

Я бы рассмотрел документацию Titanium.UI.iOS.TabbedBar для получения дополнительной информации. Похоже, вам нужно смоделировать их отключение, изменив цвет, например, на светло-серый, а затем установите touchEnabled на false.

Надеюсь, что поможет вам двигаться вперед.